第十题
输入一行字符,分别统计出其中 英文字母、空格、数字和其它字符的个数。
思路:
1)创建一个数组来存储字符,
2)通过比较字符的 ASCII码 的值来统计个数。
代码:
import java.util.Scanner;
public class Count {
public static void main(String[] args) {
int number=0;
int letter=0;
int blank=0;
int other=0;
char[] ch = null;
System.out.println("请输入需要统计的字符:");
Scanner in = new Scanner(System.in);
String s = in.nextLine();
ch = s.toCharArray();
for(int i=0;i
if( ch[i] >='0' && ch[i] <= '9' ){
number++;
}else if((ch[i]>='a'&& ch[i]<='z')||(ch[i]>='A' && ch[i]<='Z')){
letter++;
}else if(ch[i]==' '){
blank++;
}else{
other++;
}
}
System.out.println("数字个数"+number);
System.out.println("英文字母个数"+letter);
System.out.println("空格个数"+blank);
System.out.println("其他字符个数"+other);
}
}
第十一题
求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
思路:
我们需要输入两个数 a 和 n,a 就是数字的值,n代表数字的个数。
代码:
import java.util.Scanner;
public class Additive {
public static void main(String[] args) {
long b=0,s=0;
Scanner in = new Scanner(System.in);
System.out.println("请输入a的值:");
int a = in.nextInt();
System.out.println("请输入相加的项数n的值");
int n = in.nextInt();
for(int i=0;i
b=b+a;
s=s+b;
a=a*10;
System.out.println(b);
}
System.out.println(s);
}
}
第十二题
一个数如果恰好等于它的因子之和,这个数就称为 "完数",例如6=1+2+3。编程找出1000以内的所有完数。
思路:
穷举法(简直就是万能的存在~)
代码:
public class EndNumber {
public static void main(String[] args) {
System.out.println("1000以内的完数有:");
for(int i=1;i<1000;i++){
int t=0;
for(int j=1;j<=i/2;j++){
if(i%j==0){
t=t+j;
}
}
if(t==i){
System.out.println(t);
}
}
}
}
也不知道和小伙伴们想法是不是一样的,就先写到这里了~至于后面的那道小球下落的题,咱们先留着,让小伙伴多想一天~嘿嘿!
想学习Java的小伙伴注意啦!我整理了一套从最基础的Java入门级学习到Java框架内容,送给每一位想要学习Java的小伙伴,想要获取资料,可以关注微信公众号“速学Java”哦~这里是小白聚集地,欢迎初学和进阶中的小伙伴~
关注微信公众号:速学Java
网友评论