Java 新手习题()

循环

1.(for 循环)计算1+2+3+…+100 的和

package com.fxm.day03.test;
public class day03test1{
 public static void main(String[] args){
  int sum = 0;
  for(int i = 1; i < 101; i++){
   sum += i;
  }
  System.out.println("1到100的和:"+sum);
 } 
}

2.(for 循环)计算1+3+5+…+99 的和。

package com.fxm.day03.test;
public class day03test2{
 public static void main(String[] args){
  int sum = 0;
  for(int i = 1; i < 100; i += 2){
   sum += i;
  }
  System.out.println("1到100的奇数和为:"+sum);
 }
}

3.(while/do while循环)把1、2 两题用while 循环或do…while 循环改写。

package com.fxm.day03.test;
public class Day03test3{
 public static void main(String[] args){
  test1(100);
  test2(99); 
 }
 
 public static int test1(int n){
  int sum = 0;
  while(n > 0){
   sum += n;
   n--;
  }
  System.out.println("1到100的和:"+sum);
  return 0;
 }
 
 public static int test2(int n){
  int sum = 0;
  while(n > 0){
   sum += n;
   n -= 2;
  }
  System.out.println("1到100的奇数和为:"+sum);
  return 0;
 }
}

4.(for 循环)读入一个小于10 的整数n,输出它的阶乘n!。

package com.fxm.day03.test;
public class Day03test4{
 public static void main(String[] args){
  java.util.Scanner sc = new java.util.Scanner(System.in);
  System.out.println("输入一个小于10的数:");
  int n = sc.nextInt();
  int result = 1;
  for(int i = 1; i <= n; i++){
   result *= i;
  }
  System.out.println("它的阶乘为:"+result);
 }
}

5.(循环)找出1~100之中,所有能被5整除,或者被6整除的数字。在控制台输出

package com.fxm.day03.test;
public class Day03Test5{
 public static void main(String[] args){
  System.out.println("输出1到100之间能被5或6整除的数:");
  for(int i = 1; i < 101; i++){
   if(i % 5 == 0||i % 6 == 0){
    System.out.print(" "+i);
   }
  }
 }
}

6.(循环)用户输入一个数字,列出所有它能够整除的数字。 比如用户输入48,那么控制台中将显示:

package com.fxm.day03.test;
public class Day03Test6{
 public static void main(String[] args){
  java.util.Scanner sc = new java.util.Scanner(System.in);
  System.out.println("输入一个数:");
  int n = sc.nextInt();
  System.out.println("它所以能整除的数有:");
  for(int i = 1; i <= n; i++){
   if(n % i == 0){
    System.out.println(i);
   }
  }
 }
}

7.(for 循环)求100 以内所有能被3 整除但不能被5 整除的数字的和。

package com.fxm.day03.test;
public class Day03Test7{
 public static void main(String[] args){
  int sum = 0;
  for(int i = 1; i < 100; i++){
   if(i % 3 == 0&&i % 5 != 0){
    sum += i;
   }
  }
  System.out.println("100以内所有能被3整除但不能被5整除的数字和:"+sum);
 }
}

8.(for 循环)“百钱买百鸡”是我国古代的著名数学题。
题目描述:3文钱可以买1只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。 用100文钱买100 只鸡,那么各有公鸡、母鸡、小鸡多少只?

package com.fxm.day03.test;
public class Day03Test8{
 public static void main(String[] args){
  int x,y,z;
  for(x = 0;x < 100;x++){
   for(y = 0;y < 100;y++){
    for(z = 0;z < 100;z++){
     if(3*x+2*y+z/3==100&&z%3==0&&x+y+z==100){
      System.out.println("公鸡:"+x+" 母鸡:"+y+" 小鸡:"+z);
     }
    }
   }
  }
 }
}

优化如下:

package com.fxm.day03.test;
public class Day03Test8{
 public static void main(String[] args){
  int x,y,z;
  for(x = 0;x < 100;x++){
   for(y = 0;y < 100;y++){
    z = 100 - x - y;
    if(z % 3 != 0){
     continue;
    }
    if(3*x+2*y+z/3==100){
     System.out.println("公鸡:"+x+" 母鸡:"+y+" 小鸡:"+z);
    }
   }
  }
 }
}

9.(for 循环)搬砖问题:36 块砖,36 人搬,男搬4,女搬3,两个小孩抬1 砖, 要求一次 全搬完,问 男、女和小孩各若干?

package com.fxm.day03.test;
public class Day03Test9{
 public static void main(String[] args){
  int x,y,z;
  for(x = 1;x < 36;x++){
   for(y = 1;y < 36;y++){
    for(z = 2;z < 36;z+=2){
     if(x+y+z==36&&4*x+3*y+z/2==36){
      System.out.println("男:"+x+" 女:"+y+" 小孩:"+z);
     }
    }
   }
  }
 }
}

10.(for 循环)编程找出四位整数abcd 中满足 (ab+cd)(ab+cd)=abcd 的数。 例如abcd=1234,则ab=12,cd=34;

package com.fxm.day03.test;
public class Day03Test10{
 public static void main(String[] args){
  int a,b,c,d;
  for(a = 0;a < 10;a++){
   for(b = 0;b < 10;b++){
    for(c = 0;c < 10;c++){
     for(d = 0;d < 10;d++){
      if((10*a+b+10*c+d)*(10*a+b+10*c+d)==1000*a+100*b+10*c+d){
       System.out.println("a:"+a+" b:"+b+" c:"+c+" d:"+d);
      }
     }
    }
   }
  }
 }
}

优化如下:

package com.fxm.day03.test;
public class Day03Test10{
 public static void main(String[] args){
  for(int i = 1000;i < 9999;i++){
   int ab = i / 100;
   int cd = i % 100;
   if((ab+cd)*(ab+cd)==i){
    System.out.println(i);
   }
  }
 }
}

11.(循环)*读入一个整数n,输出如下图形 n = 3
n = 4
思路:
I. 读入的整数n,就是外层循环的循环次数。 II. 对于每一行,要做的事情: 1). 输出若干个空格; 2). 输出若干个星; 3). 换行。 提示:输出不换行,用System.out.print()。

package com.fxm.day03.test;
public class Day03Test11{
 public static void main(String[] args){
  java.util.Scanner sc = new java.util.Scanner(System.in);
  System.out.println("输入一个数:");
  int n = sc.nextInt();
  for(int i = 0;i < n;i++){
   for(int j = 0;j < n-i;j++){
    System.out.print(" ");
   }
   for(int k = 0;k <= 2*i;k++){
    System.out.print("*");
   }
   System.out.println();
  }
 }
}

12、利用循环,实现下面数据的输出结果。 1-3+5-7+…-99+101

package com.fxm.day03.test;
public class Day03Test12{
 public static void main(String[] args){
  int sum1 = 0;int sum2 = 0;
  for(int i = 1;i < 102;i+=4){
   sum1 += i;
  }
  for(int j = 3;j < 100;j+=4){
   sum2 += j;
  }
  int result = sum1 - sum2;
  System.out.println("1-3+5-7+бн-99+101="+result);
 }
}

13.(for循环)输出99 乘法表。

package com.fxm.day03.test;
public class Day03Test13{
 public static void main(String[] args){
  for(int i = 1;i < 10;i++){
   for(int j = 1;j <= i;j++){
    System.out.print(i+"*"+j+"="+i*j+" "+"\t");
   }
   System.out.println();
  }
 }
}

14.(for循环)求水仙花数。
提示:所谓水仙花数,是指一个三位数abc,如果满足a³+b³+c³=abc,则abc是水 仙花数。

package com.fxm.day03.test;
public class Day03Test14{
 public static void main(String[] args){
  for(int a = 0;a < 10;a++){
   for(int b = 0;b < 10;b++){
    for(int c = 0;c < 10;c++){
     if(a*a*a+b*b*b+c*c*c==100*a+10*b+c){
      System.out.print(a);
      System.out.print(b);
      System.out.print(c);
      System.out.println();
     }
    }
   }
  }
 }
}

函数

5.写一个函数,接受一个整数,返回这个整数是几位数

package com.fxm.day04.test;
import java.util.Scanner;
public class Day04Test05{
 public static void main(String[] args){
  Scanner sc = new Scanner(System.in);
  System.out.println("输入一个数:");
  int n = sc.nextInt();
  int x = test05(n);
  System.out.println("该数是"+x+"位数。");
 }
 
 public static int test05(int n){
  if(n == 0){
   return 1;
  }
  int i = 0;
  while(n != 0){
   n /= 10;
   i++;
  }
  return i;
 }
}

6.(函数嵌套)打印所有的三位数,该三位数等与其每位数字的阶乘之和。

package com.fxm.day04.test;
public class Day04Test06{
 public static void main(String[] args){
  for(int a = 0;a < 10;a++){
   for(int b = 0;b < 10;b++){
    for(int c = 0;c < 10;c++){
     if(100*a+10*b+c==test06(a)+test06(b)+test06(c)){
      System.out.print(a);
      System.out.print(b);
      System.out.print(c);
      System.out.println();
     }
    }
   }
  }
 }
 public static int test06(int a){
  if(a == 0){
   return 1;
  }
  return a*test06(a-1);
 }
}

7.(函数嵌套)如果整数A 的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部 因 子包括1,不包括B 本身)之和等于A,则称整数A\B是一对亲密数。打印出3000 以内的全部 亲密数。

package com.fxm.day04.test;
public class Day04Test07{
 public static void main(String[] args){
  for(int A = 2;A < 3000;A++){
   for(int B = 2;B < 3000;B++){
    if(test07(A) == test07(B)&&A != B){
     System.out.println("A:"+A+" B:"+B);
    }
   }
  }
 }
 public static int test07(int a){
  int sum = 0;
  for(int i = 1;i < a;i++){
   if(a % i == 0){
    sum += i;
   }
  }
  return sum;
 }
}

8.(函数嵌套)验证哥德巴赫猜想:
任何一个大于6的偶数,都能分解成两个质数的和。要求输入 一个整数,输出这个 数能被 分解成哪两个质数的和。 eg : 14 14=3+11 14=7+7

package com.fxm.day04.test;
public class Day04Test08{
 public static void main(String[] args){
  java.util.Scanner sc = new java.util.Scanner(System.in);
  System.out.println("输入一个大于6的偶数:");
  int n = sc.nextInt();
  if(n % 2 != 0||n > 6){
   System.out.println("输入有误!!");
  }else{
   for(int n1 = 1;n1 <= n/2;n1++){
    int n2 = n - n1;
    if(test08(n1) && test08(n2)){
     System.out.println(n+"="+n1+"+"+n2);
    }
   }
  }
 }
 public static boolean test08(int n){
  if(n < 2){
   return false;
  }
  for(int i = 2;i < n;i++){
   if(n % i == 0){
    return false;
   }
  }
  return true;
 }
}

9、斐波那契数列的第1和第2个数分别为1和1,从第三个数开始,每个数等于其前两个数之 和(1,1,2,3,5,8,13….).写出一个函数,接受一个数表示数列序号,返回对应序号中序列的 值

package com.fxm.day03.test;
public class Day03Test15{
 public static void main(String[] args){
  java.util.Scanner sc = new java.util.Scanner(System.in);
  System.out.println("输出一个数:");
  int n = sc.nextInt();
  int a = shulie(n);
  System.out.print(a);
 }
 
 public static int shulie(int n){
  if(n ==1||n == 2){
   return 1;
  }
  return shulie(n-1) + shulie(n-2);
 }
}

10、写一个函数,接收一个整数n,判断这个数是不是质数。(质数是只能被1和它本身整除 的自然数,1本身不是质数)

package com.fxm.day04.test;
public class Day04Test10{
 public static void main(String[] args){
  test10(); 
 }
 
 public static int test10(){
  java.util.Scanner sc = new java.util.Scanner(System.in);
  System.out.println("输入一个数:");
  int n = sc.nextInt();
  for(int i = 2;i < n;i++){
   if(n % i == 0){
    System.out.println("不是质数");
    break;
   }else if(i == n-1){
    System.out.println("是质数");
   }
  }
  return 0;
 }
}
  • 18
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值