java作业 集结(循环嵌套)

一 /反推计算
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半,零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。程序分析:采取逆向思维的方法,从后往前推断
/

int day,x1, x2;
	 day=9 ; 
	 x2 =1;
	 while(day>0) {x1=(x2+1)*2; x2=x1; day--;}
	 System.out.println(x2);
	

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

 System.out.println("请输入一个正整数");
     Scanner scanner=new Scanner(System.in);
     int n=scanner.nextInt();
     System.out.print(n+"=");
     for(int k=2; k<=n;k++) {
    	 while(n!=k) {
    		 if (n%k==0) {
    			 System.out.print(k+"*");
    			 n=n/k;}
    		 else {break;}
    			 
    		 }
    	 }
     System.out.print(n);

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

float total=100;                   //总路程。
		float startHeight=100;           //每一次下落后弹起的高度
		                           //计算在第十次落地时已经走过的路程。(第十次已经落地但是并没有走第十次的路程)
		for(int i=1;i<=9;i++){
			startHeight=startHeight/2;                //计算此次弹起单程高度
			
			total=startHeight*2+total;                //将此次弹起并落地的高度加到总路程中。
		}
		
		System.out.println("totalmeters:"+total);
		System.out.println("第十次高度:"+startHeight/2);

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

for(int i=2;i<=1000;i++) 
	      {
		 int sum = 0; for(int j=1;j<i;j++) {if(i%j==0) {  sum+=j;   }   }     
		 if(sum==i)       
		 { System.out.print(i+ "    ");}  
      }

五 组合
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 。不满足条件的排列*/

int x=0, y=0, z=0, count=0;
		for(x=1;x<=4;x++) {
			for(y=1;y<=4;y++) {
				if(y==x) {continue;}
for(z=1;z<=4;z++) {if(y!=z&&z!=x) {System.out.println("组合的数分别别是"+x+y+z); count++;} }
			}
		}
	System.out.println("总共可以组合的数有"+count+"个");
发布了28 篇原创文章 · 获赞 1 · 访问量 1708

猜你喜欢

转载自blog.csdn.net/qq_45870494/article/details/103333390