Java 基础编程二

9. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

 1 public static int sumNum(){
 2         Scanner sc = new Scanner(System.in);
 3         System.out.println("请输入a的值:");
 4         int a = Integer.parseInt(sc.next());
 5         System.out.println("请输入个数:");
 6         int count = Integer.parseInt(sc.next());
 7         int temp = 0;
 8         int sum = 0;
 9         for (int i = 1; i <=count ; i++) {
10             temp = temp*10+a;
11             sum+=temp;
12         }
13         return sum;
14     }
View Code

运行结果:

10. 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。

 1 public static String wanshu(){
 2         StringBuilder sb = new StringBuilder();
 3         for (int i = 1; i <1000 ; i++) {
 4             int sum = 0;
 5             for(int j = 1;j<=i/2;j++){
 6                 if(i%j==0){
 7                     sum+=j;
 8                 }
 9             }
10             if(i == sum){
11                 sb = sb.append(i+",");
12             }
13         }
14         return sb.toString();
15     }
View Code

运行结果:

11. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

 1 public static void freefall(){
 2         double h = 100;
 3         double sumh = 100;
 4         for (int i = 0; i < 10; i++) {
 5             h/=2;
 6             sumh+=h;
 7         }
 8         System.out.println("第10次落地时共经过:"+sumh+"米");
 9         System.out.println("第10次反弹高度为:"+h+"米");
10     }
View Code

运行结果:

12. 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

 1 public static void bonus(){
 2         System.out.println("请输入当月利润:");
 3         Scanner sc = new Scanner(System.in);
 4         double i = Double.parseDouble(sc.next());
 5         if(i<=100000){
 6             System.out.println("应发放奖金数:"+i*0.1);
 7         }else if(i>100000&&i<=200000){
 8             System.out.println("应发放奖金数:"+(100000*0.1+(i-100000)*0.75));
 9         }else if(i>200000&&i<=400000){
10             System.out.println("应发放奖金数:"+(100000*0.1+100000*0.75)+(i-200000)*0.05);
11         }else if(i>400000&&i<=600000){
12             System.out.println("应发放奖金数:"+(100000*0.1+100000*0.75+200000*0.05)+(i-400000)*0.03);
13         }else if(i>600000&&i<=1000000){
14             System.out.println("应发放奖金数:"+(100000*0.1+100000*0.75+200000*0.05+200000*0.03)+(i-600000)*0.015);
15         }else{
16             System.out.println("应发放奖金数:"+(100000*0.1+100000*0.75+200000*0.05+200000*0.03+400000*0.015)+(i-1000000)*0.01);
17         }
18     }
View Code

运行结果:

13. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 

 1 public static void wanquan(){
 2         double temp = 0;
 3         for (int i = 0; i < 999; i++) {
 4             temp = (int)Math.sqrt(i+100);
 5             if(temp*temp == 100+i){
 6                 temp = (int)Math.sqrt(i+268);
 7                 if(temp*temp == i+268){
 8                     System.out.println("这个数是"+i);
 9                 }
10             }
11         }
12 
13     }
View Code

运行结果:

14. 输入某年某月某日,判断这一天是这一年的第几天?

 1 public static int day(){
 2         Scanner sc = new Scanner(System.in);
 3         String[] arrdate = new String[3];
 4         int i = 0;
 5         System.out.println("请输入日期:");
 6         //日期输入格式为yyyy-mm-dd,假定日期输入为正确数据
 7         String date = sc.next();
 8         StringTokenizer st = new StringTokenizer(date, "-");
 9         while(st.hasMoreTokens()){
10             arrdate[i] = st.nextToken();
11             i++;
12         }
13         String year = arrdate[0].charAt(0) == 0?arrdate[0].substring(1):arrdate[0];
14         String month = arrdate[1].charAt(0) == 0?arrdate[1].substring(1):arrdate[1];
15         String day = arrdate[2].charAt(0) == 0?arrdate[2].substring(1):arrdate[2];
16         int y = Integer.parseInt(year);
17         int m = Integer.parseInt(month);
18         int d = Integer.parseInt(day);
19         if(m == 1){
20             return d;
21         }
22         if(m == 2){
23             return 31+d;
24         }
25         if(y%4==0&&y%100!=0||y%400==0){
26             d++;
27         }
28         switch (m){
29             case 3:return 59+d;
30             case 4:return 90+d;
31             case 5:return 120+d;
32             case 6:return 151+d;
33             case 7:return 181+d;
34             case 8:return 212+d;
35             case 9:return 243+d;
36             case 10:return 273+d;
37             case 11:return 304+d;
38             case 12:return 334+d;
39             default:return -1;
40         }
41     }
View Code

运行结果:

posted @ 2017-05-10 21:05  守明  阅读(124)  评论(0编辑  收藏  举报