java循环结构程序设计题

  • 格式:doc
  • 大小:76.00 KB
  • 文档页数:10

循环结构程序设计 1、 *求1+4+7+……+100之和。 int sum=0; for(int i=1;i<=100;i+=3){ sum+=i; } System.out. println ("1+4+7+……+100之和为:"+sum);

2、 *求1到100之间的奇数之和与偶数之和。 int sumJs=0,sumOs=0; for(int i=1;i<=100;i++){ if(i%2==0) sumOs+=i; else sumJs+=i; } System.out.println("1~100的奇数和为:"+sumJs+"\n1~100的偶数和为:"+sumOs);

3、用循环程序求10的阶乘。 int product=1; for(int i=10;i>0;i--){ product*=i;

} System.out.println("10的阶乘乘积为:"+product);

4、求1*3*5*...*19之积。 int productJs=1; for(int i=1;i<19;i++){ if(i%2!=0) productJs*=i; } System.out.println("1*3*5*...*19之积为:"+productJs);

5、从键盘输入一个正整数n,求1+2+3+...+n之和并输出。 int sum=0; Scanner input = new Scanner(System.in); System.out.println("输入一个正整数:"); int num=input.nextInt(); for(int i=1;i<=num;i++){ sum+=i; } System.out.println("1+2+3+...+n之和为:"+sum);

6、从键盘输入一个正整数,求出其阶乘并输出。 int productJc=1; System.out.println("输入一个正整数:"); int num1=input.nextInt();

for(int i=num1;i>0;i--){ productJc*=i;

} System.out.println(num1+"的阶乘乘积为:"+productJc);

6A、求1-1/3+1/5-1/7+...-1/99+1/101之和。 double sum=0; int count=0;

for(int i=1;i<102;i+=2){ count++; if(count%2==0) sum-=1.0/i; else sum+=1.0/i; } System.out.println("1-1/3+1/5-1/7+...-1/99+1/101之和为:"+sum);

6B、求20+21+22+...+263之和。 int sum=0; for(int i=20;i<264;i++){ sum+=i; } System.out.println("20+21+22+...+263之和:"+sum);

7、*求12+32+52+...+992之和。

int sum=0; for(int i=1;i<100;i++){ sum+=i*i; } System.out.println("12+32+52+...+992之和为:

"+sum);

8、求1+1/3+1/5+...+1/99之和。 double sum=0.0; for(int i=1;i<100;i+=2){ sum+=1.0/i; } System.out.println("1+1/3+1/5+...+1/99之和:"+sum);

9、*求1+1/3+1/5+...的前20项之和。 double sum=0.0; int count=0; for(int i=1;;i+=2){ count++; if(count>20) break; sum+=1.0/i; } System.out.println("1+1/3+1/5+...的前20项之和:"+sum);

10、求1+1/3+1/5+...之和,直到某一项的值小于10-6时停止累加。 double sum=0.0; double val=Math.pow(10.0, -6.0);//10的-6次方 double val1; for(int i=1;;i+=2){ val1=1.0/i; if(val1break; sum+=1.0/i; } System.out.println("1+1/3+1/5+...的前20项之和:"+sum);

11、已知序列1/2,2/3,3/5,5/8,...,求其前20项之和。 int count = 0; double z = 1,c,sum=0.0; for (double a=1.0,b=1.0,x=1.0,y=1.0;;) {

// 求分母 count++; if (count >= 20) break; c = a + b; a = b; b = c; sum += z / c;// 计算和 // 求分子 z = x + y; x = y; y = z;

} System.out.println(sum);

12、求1!+2!+3!+...+20!之和。 int sum=0,sum1=1; for(int m=1;m<21;m++){ for(int n=1;n<=m;n++){ sum1*=n; } sum+=sum1; sum1=1; } System.out.println("1!+2!+3!+...+20!之和:"+sum);

13、求1!+5!+9!+...+21!之和。 int sum=0,sum1=1; for(int m=1;m<21;m+=4){ for(int n=1;n<=m;n++){ sum1*=n; } sum+=sum1; sum1=1; } System.out.println("1!+2!+3!+...+20!之和:"+sum);

14、从键盘两个整数,求其最大公约数和最小公倍数。

public static void main(String[] args) {

int m, n, max, min; Scanner input = new Scanner(System.in);

System.out.println("请输入两个正整数:"); int num1 = input.nextInt(); int num2 = input.nextInt(); if (num1 > num2) { max = num1; min = num2; } else { max = num2; min = num1; } // 求最大公约数 for (m = min;; m--) { if (num2 % m == 0 && num1 % m == 0) break; }

// 求最小公倍数 for (n = max;; n++) { if (n % num1 == 0 && n % num2 == 0) break; } System.out.println("最大公约数是:" + m + "\n最小公倍数是:" + n); }

} 15、*求a+aa+aaa+...(如2+22+222+2222+22222)前n项之和。

16、从键盘输入一个正整数,将该数前后倒置后输出。 Scanner input = new Scanner(System.in); System.out.print("请输入一个正整数:"); int m = input.nextInt(); System.out.print("该数的逆序为:"); int num=1; while (m>0) { num = m % 10; System.out.print(num); m = m / 10;

}17、*求出所有的水仙花数(各位数字立方之和等于数本身的三

位整数)并输出。 int count=0, m,num; int ge,shi,bai; System.out.println("三位数的水仙花数有:"); for(int i=100;i<1000;i++){ ge=i%10; shi=i/10%10; bai=i/100; if(Math.pow(ge,3)+Math.pow(shi, 3)+Math.pow(bai,3)==i) System.out.print(i+"\t"); }

18、从键盘输入一个正整数,判断是否是完数(一个数如果恰好等于它

的因子之和,这个数就称为"完数"。例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数")。 int sum = 0; Scanner input = new Scanner(System.in); System.out.print("请输入一个正整数:"); int m = input.nextInt();

for (int i = 1; i < m; i++) { if (m % i == 0) sum += i; } if (sum == m) System.out.println(m+"是一个完数!"); else System.out.println(m+"不是一个完数。");

19、用双重循环打印如下图形。 * *** ***** ******* public static void main(String[] args) { final int LINES=4; //定义常量行数 for(int m=1;m<=LINES;m++){ //控制*的行数

//输出空格 for(int x=1;x<=LINES-m;x++){ System.out.print(" "); } //输出*号 for(int n=1;n<=2*m-1;n++){ //*的个数 System.out.print("*"); }