- 有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
public class zuoye1 { public static void main(String[] args) { int num=1020; int day=0; while(num>0){ num=(num/2-2);//每天剩余西瓜数量 day++; System.out.println("经过"+day+"天"+"剩余"+num+"个"); } System.out.println("经过"+day+"天卖完"); } }
- 猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃一个,以后每天都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个?
public class zuoye2 { public static void main(String[] args) { int peach=1;//每天桃子的数量是(第二天的数量加1)的两倍 for(int day=9;day>=1;day--){//第九天个数就是(第十天的个数加1)*2 peach=(peach+1)*2; System.out.println("第"+(day)+"天,"+"有"+peach+"个桃子"); } } }
- 有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对? 分析:兔子的规律为数列,1,1,2,3,5,8,13,21
public class zuoye3 { public static void main(String[] args) { //前两位数之和等于第三位 int a=1; int b=1; int sum=0; for(int i=3;i <=12;i++){ // int c=a+b;//把b赋值给a,c赋值给b,这样又得到一个c=a+b,进行循环 // a=b; // b=c; sum=a+b; a=b; b=sum; System.out.println("经过"+i+"个月,"+"兔子个数:"+sum); } System.out.println("经过12个月,兔子总个数:"+sum); } }
4. 任意输入一个整数(小于10位),输出它一共有多少位
public class zuoye4 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入一个整数:"); int num=sc.nextInt(); int weishu=1; while (num>=10){ num/=10; weishu++; } System.out.println("这是"+weishu+"位数"); }
5. 计算1000以内所有不能被7整除的整数之和
public class zuoye5 { public static void main(String[] args) { int i=1; int sum=0; while(i<1000) { if(i%7!=0) { sum += i; } i++; } System.out.println(sum); } }
6. 本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是
public class zuoye6 { public static void main(String[] args) { int sum=10000; double diyinian=sum*1.003; double diernian=diyinian*1.003; double disannian=diernian*1.003; double disinian=disannian*1.003; double diwunian=disinian*1.003; System.out.println("五年后本金是:"+diwunian); } }
7. 计算 1+2-3+4-5+6-7....+100的结果//注意审题
public class zuoye7 { public static void main(String[] args) { int sum=1; for(int i=2;i<=100;i++) { if(i%2==0){ sum+=i; }else{ sum-=i; } } System.out.println("结果为:"+sum); } }
8. 一张纸的厚度大约是0.08mm,对折多少次之后能达到或超过珠穆朗玛峰的高度(8848.13米)
public class zuoye8 { public static void main(String[] args) { double sum=0.08; int c=0; while(sum<=8848130){ sum*=2; c++; } System.out.println("需要折叠"+c+"次"); } }
- 从控制台输入一个正整数,计算该数的阶乘。例如输入5,阶乘为 5*4*3*2*
-
public class zuoye9 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入一个正整数:"); int num=sc.nextInt(); int sum=1; for(int b=num;b>1;b--){ sum*=b; } System.out.println("阶乘结果是:"+sum); } }
2021.10.21关于循环语句的一些练习
Guess you like
Origin blog.csdn.net/kkkyzp/article/details/120894004
Ranking