每天10道编程题-第一天

【程序1】   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

【程序2】   题目:判断101-200之间有多少个素数,并输出所有素数。

【程序3】   题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

【程序4】   题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

【程序5】   题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

【程序6】   题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

【程序7】   题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

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

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

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

【程序1】   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

可以这样思考:第一个月后即第二个月时,1对兔子变成了两对兔子,其中一对是它本身,另一对是它生下的幼兔. 第三个月时两对兔子变成了三对,其中一对是最初的一对,另一对是它刚生下来的幼兔,第三对是幼兔长成的大兔子. 第四个月时,三对兔子变成了五对,第五个月时,五对兔子变成了八对······

 1 package com.daliu.suanfa;
 2
 3 /**
 4  * 【程序1】
 5  * 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
 6  * 小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
 7  *
 8  */
 9 public class exp1_1 {
10     public static void main(String args[]) {
11         int i = 0;
12         math mymath = new math();
13         for (i = 1; i <= 20; i++)
14             System.out.println(mymath.f(i));
15     }
16
17 }
18
19 class math {
20     public int f(int x) {
21         if (x == 1 || x == 2)
22             return 1;
23         else
24             return f(x - 1) + f(x - 2);
25     }
26 }
 1 package com.daliu.suanfa;
 2
 3 /**
 4  * 【程序1】
 5  * 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
 6  * 小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
 7  * 1 1  2  3  5  8  13  21 34 55 ....
 8  */
 9 public class exp1_2 {
10     public static void main(String args[]) {
11         int i = 0;
12
13         for (i = 1; i <= 20; i++)
14             System.out.print(f(i) + " ");
15     }
16
17
18     public static int f(int x) {
19         if (x == 1 || x == 2)
20             return 1;
21         else
22             return f(x - 1) + f(x - 2);
23     }
24 }

涨姿势:
 斐波纳契数列还暗含着许多有趣的数字规律,如从第3个数开始每隔两个必是2的倍数,从第4个数开始每隔3个必是3的倍数,从第5个数开始每隔4个必是5的倍数……另外,这个数列最具有和谐之美的地方是,越往后,相邻两项的比值会无限趋向于黄金比0.61803……即[5^(1/2)-1]/2。

【程序2】   题目:判断101-200之间有多少个素数,并输出所有素数。

 1 package com.daliu.suanfa;
 2
 3 /**
 4  * 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。
 5  */
 6 public class exp2 {
 7     public static void main(String args[]) {
 8         int i = 0;
 9         math2 mymath = new math2();
10         for (i = 2; i <= 200; i++)
11             if (mymath.iszhishu(i) == true)
12                 System.out.print(i + " ");
13     }
14 }
15
16 class math2 {
17
18     public boolean iszhishu(int x) {
19         for (int i = 2; i <= Math.sqrt(x); i++)
20             if (x % i == 0)
21                 return false;
22         return true;
23     }
24 }

【程序3】   题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

 1 package com.daliu.suanfa;
 2
 3 /**
 4  *
 5  【程序3】 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
 6  例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
 7  *
 8  */
 9 public class exp3 {
10     public static void main(String args[]) {
11         int i = 0;
12         math3 mymath = new math3();
13         for (i = 100; i <= 999; i++)
14             if (mymath.shuixianhua(i) == true)
15                 System.out.print(i + " ");
16     }
17 }
18
19 class math3 {
20
21     public boolean shuixianhua(int x) {
22         int i = 0, j = 0, k = 0;
23         i = x / 100;
24         j = (x % 100) / 10;
25         k = x % 10;
26         if (x == i * i * i + j * j * j + k * k * k)
27             return true;
28         else
29             return false;
30
31     }
32 }

【程序4】   题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:  
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。  
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步。  
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

 1 package com.daliu.suanfa;
 2
 3 import java.util.Scanner;
 4
 5 /**
 6  * 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
 7  *
 8  */
 9 public class exp4 {
10
11     public static void fengjie(int n) {
12         for (int i = 2; i <= n / 2; i++) {
13             if (n % i == 0) {
14                 System.out.print(i + "*");
15                 fengjie(n / i);
16             }
17         }
18         System.out.print(n);
19         System.exit(0);// /不能少这句,否则结果会出错
20     }
21
22     public static void main(String[] args) {
23
24         // 获取输入值 方法 一
25         // String str = "";
26         // str = javax.swing.JOptionPane.showInputDialog("请输入N的值(输入exit退出):");
27         // int N = 0;
28         // try {
29         // N = Integer.parseInt(str);
30         // } catch (NumberFormatException e) {
31         // e.printStackTrace();
32         // }
33
34         // 获取输入值 方法二
35         Scanner scan = new Scanner(System.in);
36         System.out.print("请输入要分解的值:");
37         int N = scan.nextInt();
38         System.out.print(N + "分解质因数:" + N + "=");
39         fengjie(N);
40     }
41 }

【程序5】   题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

 1 package com.daliu.suanfa;
 2
 3 import java.util.Scanner;
 4
 5 /**
 6  * 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
 7  *
 8  */
 9 public class exp5 {
10     public static void main(String[] args) {
11
12         // 获取输入值 方法一
13         // String str = "";
14         // str = JOptionPane.showInputDialog("请输入N的值(输入exit退出):");
15         // int N;
16         // N = 0;
17         // try {
18         // N = Integer.parseInt(str);
19         // } catch (NumberFormatException e) {
20         // e.printStackTrace();
21         // }
22
23         // 获取输入值 方法二
24         String str = "";
25         Scanner scan = new Scanner(System.in);
26         System.out.println("请输入分数:");
27         int N = scan.nextInt();
28         str = (N >= 90 ? "A" : (N >= 60 ? "B" : "C"));
29         System.out.println(str);
30     }
31 }

【程序6】   题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

 1 package com.daliu.suanfa;
 2 /**
 3 【程序6】   题目:输入两个正整数m和n,求其最大公约数
 4  *
 5  */
 6 public class exp6_1 {
 7     public static void main(String args[]) {
 8         commonDivisor(50, 100);
 9     }
10
11     static int commonDivisor(int M, int N) {
12         if (N < 0 || M < 0) {
13             System.out.println("ERROR!");
14             return -1;
15         }
16         if (N == 0) {
17             System.out.println("最大公约数是:" + M);
18             return M;
19         }
20         return commonDivisor(N, M % N);
21     }
22 }
 1 package com.daliu.suanfa;
 2 /**
 3  * 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
 4  *
 5  */
 6 public class exp6_2 {
 7     // 下面的方法是求出最大公约数
 8     public static int gcd(int m, int n) {
 9         while (true) {
10             if ((m = m % n) == 0)
11                 return n;
12             if ((n = n % m) == 0)
13                 return m;
14         }
15     }
16
17     public static void main(String args[]) throws Exception {
18         // 取得输入值
19         // Scanner chin = new Scanner(System.in);
20         // int a = chin.nextInt(), b = chin.nextInt();
21         int a = 50;
22         int b = 100;
23         int c = gcd(a, b);
24         System.out.println("最小公倍数:" + a * b / c + "\n最大公约数:" + c);
25     }
26 }

【程序7】   题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

 1 package com.daliu.suanfa;
 2
 3 import java.util.Scanner;
 4 /**
 5  * 【程序7】   题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
 6  *
 7  */
 8 public class exp7 {
 9     public static void main(String args[]) {
10
11         //获取字符串
12         System.out.println("请输入字符串:");
13         Scanner scan = new Scanner(System.in);
14         String str = scan.next();
15
16         //将获得的字符串转变成字符数组
17         char[] arrChar = str.toCharArray();
18
19         //将字符数组的值通过循环放到字符串数组中
20         String[] arrStr = new String[arrChar.length];
21         for (int i = 0; i < arrChar.length; i++) {
22             arrStr[i] = String.valueOf(arrChar[i]);
23         }
24
25         //然后利用正则表达式来判断
26         String E1 = "[\u4e00-\u9fa5]";
27         String E2 = "[a-zA-Z]";
28         int countH = 0;
29         int countE = 0;
30         for (String i : arrStr) {
31             if (i.matches(E1)) {
32                 countH++;
33             }
34             if (i.matches(E2)) {
35                 countE++;
36             }
37         }
38         System.out.println("汉字的个数" + countH);
39         System.out.println("字母的个数" + countE);
40     }
41 }

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

 1 package com.daliu.suanfa;
 2
 3 import java.io.*;
 4 /**
 5  * 【程序8】   题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
 6  * 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制
 7  *
 8  */
 9 public class exp8_1 {
10     public static void main(String[] args) throws IOException {
11         int s = 0;
12         String output = "";
13         BufferedReader stadin = new BufferedReader(new InputStreamReader(
14                 System.in));
15         System.out.println("请输入a的值");
16         String input = stadin.readLine();
17         for (int i = 1; i <= Integer.parseInt(input); i++) {
18             output += input;
19             int a = Integer.parseInt(output);
20             s += a;
21         }
22         System.out.println(s);
23     }
24 }
 1 package com.daliu.suanfa;
 2
 3 import java.io.*;
 4 /**
 5  * 【程序8】   题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
 6  * 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
 7  *
 8  */
 9 public class exp8_2 {
10     public static void main(String[] args) throws IOException {
11         int s = 0;
12         int n;
13         int t = 0;
14         BufferedReader stadin = new BufferedReader(new InputStreamReader(
15                 System.in));
16         String input = stadin.readLine();
17         n = Integer.parseInt(input);
18         for (int i = 1; i <= n; i++) {
19             t = t * 10 + n;
20             s = s + t;
21             System.out.println(t);
22         }
23         System.out.println(s);
24     }
25 }

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

 1 package com.daliu.suanfa;
 2
 3 /**
 4  *
 5  【程序9】 题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。
 6  例如6=1+2+3.编程 找出1000以内的所有完数。
 7  *
 8  */
 9 public class exp9 {
10     public static void main(String[] args) {
11         int s;
12         for (int i = 1; i <= 1000; i++) {
13             s = 0;
14             for (int j = 1; j < i; j++)
15                 if (i % j == 0)
16                     s = s + j;
17             if (s == i)
18                 System.out.print(i + " ");
19         }
20         System.out.println();
21     }
22 }

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

 1 package com.daliu.suanfa;
 2
 3 /**
 4  * 【程序10】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;
 5  * 再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
 6  *
 7  */
 8 public class Ex10 {
 9     public static void main(String[] args) {
10         double s = 0;
11         double t = 100;
12         for (int i = 1; i <= 10; i++) {
13             s += t;
14             t = t / 2;
15         }
16         System.out.println(s);
17         System.out.println(t);
18
19     }
20 }
时间: 2024-08-03 08:18:25

每天10道编程题-第一天的相关文章

每天10道编程题-第四天

[程序31]   题目:将一个数组逆序输出. 1 package com.daliu.suanfa4; 2 3 public class Exp31 { 4 5 /** 6 * [程序31] 题目:将一个数组逆序输出. 7 */ 8 public static void main(String[] args) { 9 int myarr[]={1,6,9,8,5,3,7,6}; 10 for(int k=myarr.length-1;k>=0;k--) 11 System.out.print(m

每天10道编程题-第三天

[程序21]   题目:求1+2!+3!+...+20!的和 [程序22]   题目:利用递归方法求5!.  [程序23]   题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后问第一个人,他说是10岁.请问第五个人多大? [程序24]   题目:给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. [程序25]   题目:一个5位数,判断它是不是回文数.

每天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万元时,超过10

面试必备的10道MySQL题

MySQL 事务,是我们去面试中高级开发经常会被问到的问题,很多人虽然经常使用 MySQL,SQL 语句也写得很溜,但是面试的时候,被问到这些问题,总是不知从何说起.下面我们先来了解一下什么是 MySQL事务,再给大家分享10道面试必备的MySQL题. MySQL事务是数据处理的最小操作单元,是一组不可在分割的操作集合,这个操作单元里的一系列操作要么都成功,要么都失败. 1.MySQL主从复制的原理.(1).主库必须开启二进制日志(2).当有增删改的语句时,会记录到主库的binlog中(3).主

java基础50道编程题

50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... public class Prog1{ public static void main(String[] args){ int n = 10; System.out.println("第"+n+"个月兔子总数为&qu

网易 2016 实习研发project师 3道 编程题

1 比較重量 给定两颗钻石的编号g1,g2,编号从1開始.同一时候给定关系数组vector,当中元素为一些二元组.第一个元素为一次比較中较重的钻石的编号,第二个元素为较轻的钻石的编号.最后给定之前的比較次数n. 请返回这两颗钻石的关系,若g1更重返回1,g2更重返回-1,无法推断返回0. 输入数据保证合法,不会有矛盾情况出现. 測试例子: 2,3,[[1,2],[2,4],[1,3],[4,3]],4 返回: 1 class Cmp { public: int cmp(int g1, int g

GPS数据处理 翁恺老师C语言程序设计CAP第10章编程题

NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议.GPS接收机根据NMEA-0183协议的标准规范,将位置.速度等信息通过串口传送到PC机.PDA等设备. NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机.GPS数据处

0-100的10道四则运算题

#include<iostream> #include<time.h> #include<stdio.h> using namespace std; void main() { int t,num,a,n,i,b; srand(time(NULL));//根据时间产生随机数 for(i=0;i<10;i++) { a=rand()%100;//0-100随机一个数赋值 loop:b=rand()%100;//0-100随机一个数赋值???????? n=rand(

网易 2016 实习研发工程师 3道 编程题-1

小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量.这些钻石的重量各不相同.在他们们比较了一段时间后,它们看中了两颗钻石g1和g2.现在请你根据之前比较的信息判断这两颗钻石的哪颗更重. 给定两颗钻石的编号g1,g2,编号从1开始,同时给定关系数组vector,其中元素为一些二元组,第一个元素为一次比较中较重的钻石的编号,第二个元素为较轻的钻石的编号.最后给定之前的比较次数n.请返回这两颗钻石的关系,若g1更重返回1,g2更重返回-1,无法判断返回0.输入数据保证合法,不会有矛盾情况