package fs; import java.util.Scanner; //题目:输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。 public class Fs7 { public static void main(String[] args) { int yw=0,kg=0,sz=0,qt=0; System.out.println("输入字符串:"); Scanner s=new Scanner(System.in); String s1=s.nextLine(); for (int i=0;i<s1.length();i++){ char ch=s1.charAt(i); if (ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'){ yw++; }else if (ch==' '){ kg++; }else if (ch<='9'&&ch>='0'){ sz++; }else { qt++; } } System.out.println("输入字符串中的字母个数为:"+yw); System.out.println("输入字符串中的空格个数为:"+kg); System.out.println("输入字符串中的数字个数为:"+sz); System.out.println("输入字符串中的其他字符个数为:"+qt); } } 其他解法
public class Programme7 {
public static void main(String[] args) {
int num=0;//数字的个数
int letter=0;//字母的个数
int space=0;//空格的个数
int others=0;//其他的个数
System.out.println("请输入一串字符:");
Scanner scanner=new Scanner(System.in);
String string=scanner.nextLine();//获取一行字符串
//把字符串里面的值赋值给一个字符型数组
char[]arr=string.toCharArray();
//遍历字符串里面的所有值
for (inti = 0; i < arr.length; i++) {
if (arr[i]>=48&&arr[i]<=57) {//字符是数字
num++;
} else if((arr[i]>=65&&arr[i]<=90)||(arr[i]>=97&&arr[i]<=122)) {
letter++;
}else if (arr[i]==32) {
space++;
}else {
others++;
}
}
System.out.println("数字:"+num+"个,字母:"+letter+"个,空格:"+space+"个,其他:"+others+"个");
scanner.close();
}
}
8.
package fs; import java.util.Scanner; //题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。 // 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 // 输出结果的形式如:2+22+222=246; public class Fs8 { public static void main(String[] args) { int s=0,s1=0,s2=0; System.out.println("请输入一个数:"); Scanner a=new Scanner(System.in); int a1=a.nextByte(); int a2=a1; System.out.println("请输入一个该数总共计算项:"); Scanner n=new Scanner(System.in); int n1=n.nextByte(); System.out.print("输出结果为:"); System.out.print(a2+"+"); for (int i=1;i<n1;i++){ a1 =a2 + a1 * 10 ; s += a1; if (i<=n1-2){ System.out.print(a1+"+"); }else { System.out.print(a1); } } System.out.print("="+(s+a2)); } } 其他解法
public class Programme8 {
public static void main(String[] args) {
int n=0,a=0;
Scanner scanner=new Scanner(System.in);
System.out.println("请输入a的值:");
a=scanner.nextInt();
System.out.println("请输入n的值:");
n=scanner.nextInt();
int[] arr=new int[n];//创建数组长度为输入的项数
int i=1;//while循环初始化的值
arr[0]=a;//数组的第一个值为3
//把每一项的值赋值给数组里面的数
while (i<n) {
a*=10;
arr[i]=a+arr[i-1];
i++;
}
//求和
int sum=0;
for(ints:arr){
sum+=s;//累加求和
if (s==arr[n-1]) {
System.out.print(s);
break;//最后一次只输出结果
}
System.out.print(s+"+");//前面的值输出结果,后面还要加一个加号
}
System.out.println("="+sum);//完美结束
}
}
9.
package fs; import java.util.Scanner; //题目:一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如6=1+2+3.编程找出1000以内的所有完数。 public class Fs9 { public static void main(String[] args) { int w; // int w1 = 0, w2 = 0; for (w = 1; w < 1000; w++) { int w1 = 0; for (int i = 1; i <= w/2; i++) { if (w%i==0) { w1 += i; // w2 += w1; }} if (w1 == w) { System.out.println(w); } } } }
其他解法
public class Programme9 {
public static void main(String[] args) {
System.out.println("1000以内的因数有:");
for (inti = 1; i <=1000;i++) {
intsum=0;//所有因数的总和
for (intj = 1; j < i/2+1; j++) {
if (i%j==0) {//判断范围内的所有j相加,就是因数总和
sum=sum+j;
if (i==sum) {
System.out.print(i+" ");
}
}
}
}
}
}