Fork me on GitHub

每天10道编程题-第二天

【程序11】   题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
 
【程序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,求应发放奖金总数?  

【程序13】  
题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?  

【程序14】 题目:输入某年某月某日,判断这一天是这一年的第几天?  

【程序15】 题目:输入三个整数x,y,z,请把这三个数由小到大输出。  
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> z则将x与z的值进行交换,这样能使x最小。  

【程序16】 题目:输出9*9口诀。  

【程序17】   题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个   第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下   的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。  

【程序18】   题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。  
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,   则表明此数不是素数,反之是素数。  

【程序19】  题目:打印出如下图案(菱形)  
*  
***  
******  
********  
******  
***  
*  

【程序20】   题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。  

 

 

【程序11】   题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 
 

 1 package com.daliu.suanfa2;
 2 
 3 /**
 4  * 【程序11】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
 5  */
 6 public class exp11 {
 7     public static void main(String[] args) {
 8         int i = 0;
 9         int j = 0;
10         int k = 0;
11         int t = 0;
12         for (i = 1; i <= 4; i++)
13             for (j = 1; j <= 4; j++)
14                 for (k = 1; k <= 4; k++)
15                     if (i != j && j != k && i != k) {
16                         t += 1;
17                         System.out.print(i * 100 + j * 10 + k+" ");
18                     }
19         System.out.println(t);
20     }
21 }


【程序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 package com.daliu.suanfa2;
 2 
 3 import java.util.*;
 4 
 5 /**
 6  * 
 7  【程序12】
 8  * 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%
 9  * 提成,高于10万元的部分
10  * ,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时
11  * ,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
12  */
13 public class exp12 {
14     public static void main(String[] args) {
15         double sum;// 声明要储存的变量应发的奖金
16         Scanner input = new Scanner(System.in);// 导入扫描器
17         System.out.print("输入当月利润");
18         double lirun = input.nextDouble();// 从控制台录入利润
19         if (lirun <= 100000) {
20             sum = lirun * 0.1;
21         } else if (lirun <= 200000) {
22             sum = 10000 + lirun * 0.075;
23         } else if (lirun <= 400000) {
24             sum = 17500 + lirun * 0.05;
25         } else if (lirun <= 600000) {
26             sum = lirun * 0.03;
27         } else if (lirun <= 1000000) {
28             sum = lirun * 0.015;
29         } else {
30             sum = lirun * 0.01;
31         }
32         System.out.println("应发的奖金是" + sum);
33     }
34 }

 

 

 

【程序13】  
题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?  

 1 package com.daliu.suanfa2;
 2 
 3 /**
 4  * 【程序13】 题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?
 5  * 
 6  */
 7 public class exp13 {
 8     public static void main(String[] args) {
 9         long k = 0;
10         for (k = 1; k <= 100000l; k++)
11             if (Math.floor(Math.sqrt(k + 100)) == Math.sqrt(k + 100)
12                     && Math.floor(Math.sqrt(k + 168)) == Math.sqrt(k + 168))
13                 System.out.println(k);
14     }
15 }

 

【程序14】 题目:输入某年某月某日,判断这一天是这一年的第几天?  

 

 1 package com.daliu.suanfa2;
 2 
 3 import java.util.*;
 4 /**
 5  * 【程序14】 题目:输入某年某月某日,判断这一天是这一年的第几天?   
 6  *
 7  */
 8 public class exp14 {
 9     public static void main(String[] args) {
10         int day = 0;
11         int month = 0;
12         int year = 0;
13         int sum = 0;
14         int leap;
15         Scanner input = new Scanner(System.in);
16         System.out.print("请输入年份:");
17         year = input.nextInt();
18         System.out.print("请输入月份:");
19         month = input.nextInt();
20         System.out.print("请输入日:");
21         day = input.nextInt();
22         switch (month) /* 先计算某月以前月份的总天数 */
23         {
24         case 1:
25             sum = 0;
26             break;
27         case 2:
28             sum = 31;
29             break;
30         case 3:
31             sum = 59;
32             break;
33         case 4:
34             sum = 90;
35             break;
36         case 5:
37             sum = 120;
38             break;
39         case 6:
40             sum = 151;
41             break;
42         case 7:
43             sum = 181;
44             break;
45         case 8:
46             sum = 212;
47             break;
48         case 9:
49             sum = 243;
50             break;
51         case 10:
52             sum = 273;
53             break;
54         case 11:
55             sum = 304;
56             break;
57         case 12:
58             sum = 334;
59             break;
60         default:
61             System.out.println("data error");
62             break;
63         }
64         
65         sum = sum + day; /* 再加上某天的天数 */
66         
67         if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))/* 判断是不是闰年 */
68             leap = 1;
69         else
70             leap = 0;
71         if (leap == 1 && month > 2)/* 如果是闰年且月份大于2,总天数应该加一天 */
72             sum++;
73         System.out.println("It is the the day:" + sum);
74     }
75 }

 

【程序15】 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 

 1 package com.daliu.suanfa2;
 2 
 3 import java.util.*;
 4 
 5 /**
 6  * 【程序15】 题目:输入三个整数x,y,z,请把这三个数由小到大输出。
 7  * 
 8  */
 9 public class exp15 {
10     public static void main(String[] args) {
11         int i = 0;
12         int j = 0;
13         int k = 0;
14         int x = 0;
15         System.out.print("请输入三个数\n");
16         Scanner input = new Scanner(System.in);
17         i = input.nextInt();
18         j = input.nextInt();
19         k = input.nextInt();
20         /*
21          * 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x>
22          * z则将x与z的值进行交换,这样能使x最小。
23          */
24         if (i > j) {
25             x = i;
26             i = j;
27             j = x;
28         }
29         if (i > k) {
30             x = i;
31             i = k;
32             k = x;
33         }
34         if (j > k) {
35             x = j;
36             j = k;
37             k = x;
38         }
39         System.out.println(i + ", " + j + ", " + k);
40     }
41 }

程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> z则将x与z的值进行交换,这样能使x最小。  

【程序16】 题目:输出9*9口诀。  

 1 package com.daliu.suanfa2;
 2 
 3 public class exp16_1 {
 4     public static void main(String[] args) {
 5         int i = 0;
 6         int j = 0;
 7         for (i = 1; i <= 9; i++) {
 8             for (j = 1; j <= 9; j++)
 9                 System.out.print(i + "*" + j + "=" + i * j + "\t");
10             System.out.println();
11         }
12     }
13 }
 1 package com.daliu.suanfa2;
 2 public class exp16_2 {
 3 public static void main(String[] args)
 4 {
 5     int i=0;
 6     int j=0;
 7     for(i=1;i<=9;i++)
 8     {    for(j=1;j<=i;j++)
 9             System.out.print(i+"*"+j+"="+i*j+"\t");
10             System.out.println();
11     }
12 }
13 }
 1 package com.daliu.suanfa2;
 2 
 3 public class exp16_3 {
 4     public static void main(String[] args) {
 5         int i = 0;
 6         int j = 0;
 7         for (i = 1; i <= 9; i++) {
 8             for (j = i; j <= 9; j++)
 9                 System.out.print(i + "*" + j + "=" + i * j + "\t");
10             System.out.println();
11         }
12     }
13 }

 

 

 

【程序17】   题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个   第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下   的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。  

 1 package com.daliu.suanfa2;
 2 
 3 /**
 4  * 【程序17】 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
 5  * 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
 6  * 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
 7  */
 8 public class exp17 {
 9     /*
10      * 1.程序分析:采取逆向思维的方法,从后往前推断。
11      */
12     static int total(int day) {
13         if (day == 10) {
14             return 1;
15         } else {
16             return (total(day + 1) + 1) * 2;
17         }
18     }
19 
20     public static void main(String[] args) {
21         System.out.println(total(1));
22     }
23 }

 

 

【程序18】   题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。  
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,   则表明此数不是素数,反之是素数。  

 1 package com.daliu.suanfa2;
 2 
 3 import java.util.ArrayList;
 4 
 5 /**
 6  * 【程序18】
 7  * 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。
 8  * 已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比
 9  * ,c说他不和x,z比,请编程序找出三队赛手的名单。
10  * 
11  */
12 public class exp18 {
13     String a, b, c;
14 
15     public static void main(String[] args) {
16         String[] op = { "x", "y", "z" };
17         ArrayList<exp18> arrayList = new ArrayList<exp18>();
18         for (int i = 0; i < 3; i++)
19             for (int j = 0; j < 3; j++)
20                 for (int k = 0; k < 3; k++) {
21                     exp18 a = new exp18(op[i], op[j], op[k]);
22                     if (!a.a.equals(a.b) && !a.b.equals(a.c)
23                             && !a.a.equals("x") && !a.c.equals("x")
24                             && !a.c.equals("z")) {
25                         arrayList.add(a);
26                     }
27                 }
28         for (Object a : arrayList) {
29             System.out.println(a);
30         }
31     }
32 
33     public exp18(String a, String b, String c) {
34         super();
35         this.a = a;
36         this.b = b;
37         this.c = c;
38     }
39 
40     @Override
41     public String toString() {
42         return "a的对手是" + a + "," + "b的对手是" + b + "," + "c的对手是" + c + "\n";
43     }
44 }

 

 

【程序19】  题目:打印出如下图案(菱形)  
*  
***  
******  
********  
******  
***  
*  

 1 package com.daliu.suanfa2;
 2 
 3 public class exp19_1 {
 4     /*
 5      * .程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重   for循环,第一层控制行,第二层控制列。   
 6      */
 7     public static void main(String[] args) {
 8         int i = 0;
 9         int j = 0;
10         for (i = 1; i <= 4; i++) {
11             for (j = 1; j <= 2 * i - 1; j++)
12                 System.out.print("*");
13             System.out.println("");
14         }
15         for (i = 4; i >= 1; i--) {
16             for (j = 1; j <= 2 * i - 3; j++)
17                 System.out.print("*");
18             System.out.println("");
19         }
20     }
21 }

 

 1 package com.daliu.suanfa2;
 2 
 3 public class exp19_2 {
 4     public static void main(String[] args) {
 5         int i = 0;
 6         int j = 0;
 7         for (i = 1; i <= 4; i++) {
 8             for (int k = 1; k <= 4 - i; k++)
 9                 System.out.print(" ");
10             for (j = 1; j <= 2 * i - 1; j++)
11                 System.out.print("*");
12             System.out.println("");
13         }
14         for (i = 4; i >= 1; i--) {
15             for (int k = 1; k <= 5 - i; k++)
16                 System.out.print(" ");
17             for (j = 1; j <= 2 * i - 3; j++)
18                 System.out.print("*");
19             System.out.println("");
20         }
21     }
22 }

 

【程序20】   题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。  

 

 1 package com.daliu.suanfa2;
 2 
 3 /**
 4  * 【程序20】 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
 5  * 
 6  */
 7 public class exp20 {
 8     public static void main(String[] args) {
 9         float fm = 1f;
10         float fz = 1f;
11         float temp;
12         float sum = 0f;
13         for (int i = 0; i < 20; i++) {
14             temp = fm;
15             fm = fz;
16             fz = fz + temp;
17             sum += fz / fm;
18             // System.out.println(sum);
19         }
20         System.out.println(sum);
21     }
22 }

 

posted @ 2014-12-01 08:42  刘哥聊技术  阅读(302)  评论(0编辑  收藏  举报