2017-09-15
【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少
//这是一个菲波拉契数列问题
int []a = new int [12];
int y;
for(int x=0;x<12;x++) {
if((x==0)||(x==1)) {
a[0]=a[1]=1;
System.out.println(a[0]);
}else {
y=x+1;
a[x]=a[x-2]+a[x-1];
System.out.println("第"+y+"个月兔子的数量="+a[x]);
}
}
【程序2】
题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
int i,j,k;
int n=0;
for(i=101;i<200;i++) {
for(j=2;j<i;j++) {
if(i%j==0) {
break;
}
}
if(i==j) {
System.out.println("i="+i);
n++;
}
}
System.out.println("n="+n);
【程序3】
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
int a,n=0;
int i;
int j;
int k;
for(a=100;a<=999;a++) {
i=a/100;
j=a/10%10;
k=a%10;
if(i*i*i+j*j*j+k*k*k==a) {
System.out.println("a是水仙花数:"+a);
n++;
System.out.println("水仙花个数:"+n);
}
}
【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
int i;
Scanner sc = new Scanner(System.in);
i = sc.nextInt();
int j,k = 0;
int n=0;
for(j=1;j<i;j++) {
if(i%j==0) {
k=k+j;
System.out.println("质因数是:"+j);
}
}
if(i==k) {
System.out.println(i);
}else {
System.out.println("它不是完数");
}
【程序5】
题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
int score;
Scanner sc = new Scanner(System.in);
{System.out.println("成绩是:");}
score = sc.nextInt();
if(score>=60) {
if((score>=60)&&(score<=89)) {
System.out.println("B");
}
if(score>=90) {
System.out.println("A");
}
}else {
System.out.println("c");
}
【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。* /
int m;
Scanner sc1 = new Scanner(System.in);
m=sc1.nextInt();
int n;
Scanner sc2 = new Scanner(System.in);
n=sc2.nextInt();
int i;
for(i=n;i>=1;i--) {
if((m%i==0)&&(n%i==0)) {
System.out.println("最大公约数:"+i);
i=i*(m/i)*(n/i);
System.out.println("最小公倍数:"+i);
break;
}
}
【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
String str = "Hello, 我的名字是ruanchenxue ,我现在在"
+ "ICSS学习,我是0905班的学生,我们班一共有31个学生";
int letterNum=0; //英文字母的个数
int num=0; //数字个数
int blankNum=0; //空格的个数
int m=0; //其他
for(int i=0;i<str.length();i++) {
char zhi = str.charAt(i); //调用charAt(索引) 将索引的值付给zhi;
if( ( (zhi>='A')&&(zhi<='Z') ) ||( (zhi>='a')&&(zhi<='z') ) ) {
letterNum++;
}else if( (zhi>='0')&&(zhi<='9') ) {
num++;
}else if(zhi==' ') {
blankNum++;}
else {
m++;
}
}
System.out.println("英文字母的个数"+letterNum);
System.out.println("数字的个数"+num);
System.out.println("空格的个数"+blankNum);
System.out.println("其他"+m);
【程序8】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
int a;
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
int s=0;
int n;
for(n=1;n<=10;n++) {
s+=a;
a=11*a;
}
System.out.println(s);
}
【程序9】
题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
int i,j,k;
int n=0;
for(i=1;i<=1000;i++) {
k=0;
for(j=1;j<i;j++) {
if(i%j==0) {
k=k+j;
}
}
if(i==k) {
n++;
System.out.println(i);
}
}
System.out.println(n);
【程序10】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米 第10次反弹多高
double a = 100;
double s = 0;
double h = 0;
for(int n=1;n<=11;n++) {
a=a/2;
h=a;
System.out.println("弹跳高度:"+h); //第11次弹跳的高度
s+=2*h;
System.out.println("总路程:"+(s+100)); //第11次经过的路程
}
}
【程序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%提成,从键盘输入当月利润,求应发放奖金总数
double s;
double i;
Scanner sc = new Scanner (System.in);
i = sc.nextInt();
if(i<=10) {
s=i*0.1;
System.out.println(s);
}
if(i>10&&i<=20) {
s=10*0.1+(i-10)*0.075;
System.out.println(s);
}
if(i>20&&i<=40) {
s=10*0.1+10*0.075+(i-20)*0.05;
System.out.println(s);
}
if(i>40&&i<=60) {
s=10*0.1+10*0.075+20*0.05+(i-40)*0.03;
System.out.println(s);
}
if(i>60&&i<=100) {
s=10*0.1+10*0.075+20*0.05+20*0.03+(i-60)*0.015;
System.out.println(s);
}
if(i>100) {
s=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(i-100)*0.01;
System.out.println(s);
}
【程序13】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少
int m;
int n;
int i;
for(m=16;m<100;m++) {
for(n=10;n<100;n++) {
if(168==m*m-n*n){
System.out.println("m是:"+m+"\nn是"+n);
i=m*m-268;
System.out.println(i);
}
}
}
/*按题意循环应该从-100开始(整数包括正整数、负整数、零),这样会多一个满足条件的数-99。
但是我看到大部分人解这道题目时都把题中的“整数”理解成正整数,我也就随大流了。*/
【程序15】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
int a,b,c,t;
Scanner sc1 = new Scanner(System.in);
a = sc1.nextInt();
Scanner sc2 = new Scanner(System.in);
b = sc2.nextInt();
Scanner sc3 = new Scanner(System.in);
c = sc3.nextInt();
// if(a<b) {t=a;a=b;b=t;} 输出时从大到小
// if(a<c) {t=a;a=c;c=t;}
// if(b<c) {t=b;b=c;c=t;}
if(a>b){t=a;a=b;b=t;} //输出时从小到大
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}
System.out.println(a+" "+b+" "+c);
【程序17】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
int i,k = 1,t=0;
for(i=9;i>0;i--) {
t = (k+1)*2;
k = t;
System.out.println("第"+i+"天"+"还剩下"+k+"桃子");
}
System.out.println(k);
}
【程序19】
题目:打印出如下图案(菱形)
* //分为俩个部分
for(int i=1;i<=5;i++) { //行
System.out.println();
for (int space=4;space>=i ;space-- )
{
System.out.print(" "); //空格
}
for(int j=1;j<=i;j++) { //列
System.out.print(" *");
}
}
for(int i=1;i<=5;i++) { //行
System.out.println();
for (int space=1;space<=i ;space++ )
{
System.out.print(" "); //空格
}
for(int j=5;j>i;j--) {
System.out.print(" *"); //列
}
}
【程序20】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
double []a = new double [21];
int x;
double b =0;
for(x=0;x<=20;x++) {
if((x==0)) {
a[0]=1;
}else if(x==1){
a[1]=2;
}else {
a[x]=a[x-1]+a[x-2];
b+=a[x-1]/a[x-2];
System.out.println("b的值"+b);
}
}
【程序27】
题目:求100之内的素数
//使用除sqrt(n)的方法求出的素数不包括2和3
int i,j,k;
int n=0;
for(i=1;i<100;i++) {
for(j=2;j<i;j++) {
if(i%j==0) {
break;
}
}
if(i==j) {
System.out.println("i="+i);
n++;
}
}
System.out.println("n="+n);
【程序33】
题目:打印出杨辉三角形(要求打印出10行如下图)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
…………
如何让杨辉三角居中
int [][]a =new int[6][];
int i;
int j;
for(i=0;i<=6;i++) {
a[i]=new int[i+1];
for(j=0;j<=i;j++) {
if((i==0)||(j==0)||(i==j)) {
a[i][j]=1;
}else {
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
【程序34】
题目:输入3个数a,b,c,按大小顺序输出。
int a,b,c,t;
Scanner sc1 = new Scanner(System.in);
a = sc1.nextInt();
Scanner sc2 = new Scanner(System.in);
b = sc2.nextInt();
Scanner sc3 = new Scanner(System.in);
c = sc3.nextInt();
if(a<b) {t=a;a=b;b=t;}
if(a<c) {t=a;a=c;c=t;}
if(b<c) {t=b;b=c;c=t;}
System.out.println(a+" "+b+" "+c);
【程序45】
题目:判断一个整数能被几个9整除
//题目错了吧 能被9整除的就不是素数了!所以改成整数了。
int i;
int m=0;
Scanner sc = new Scanner(System.in);
i = sc.nextInt();
for(int n=1;n<=10;n++) {
if(i%9==0) {
m++;
i=i/9;
}
}
System.out.println(m);