【嵌套while理解之水仙花数和打印九九乘法表】

#include<stdio.h>
/*整体思路;本来求水仙花数如果让我们人来算,我肯定不会算,但如果用计算机的角度来思考,计算机很会计算,也就是一个一个试的方法。所以对于这道题,我们输入n的值后,
我们先要让计算机确定最终结果是几到几,然后再从这些数中筛选出满足水仙花数的数*/

int main()
{
	int n;
	scanf("%d",&n);
	int i=1;
	int first=1;   /*变量的定义与while的条件都是为了能够顺利进入循环,进入循环的目的是为了得到first的值 */
	while(i<n){
		first=first*10;  /*如果假设n=3,我们先要让计算机确定最终结果是从100开始,我们就会设计一个循环,让1不断的乘10,所以前面设置的i=1与后面的i++是决定循环
		开始和结束的关键要素。  */
		i++;
	}
	i=first;
	while(i<first*10){   /*235   */
		int t=i;
		int sum=0;
		do{
			int d;
			d=t%10;      /* 5    */    /* 3*/  /*2  */
			t=t/10;
			int p=1;
			int h=0;
			while(h<3){    /*得到一个三次方,跟前面的*10的思路差不多 
			要有个初始值,有个条件让其进入循环,然后得有个表达式让循环结束*/
				p=p*d;     /* 得到 5的三次方 ,然后做完这个循环后,跳到do while的循环 */
				h++;       /*得到3,2的三次方 */ /*do while循环做完后就跳到最外围的循环 */
			}sum=sum+p;
		}while(t>0);       
		if(sum==i){
			printf("%d\n",i);
		}
		i++;
	}
	return 0;
	
}         /*嵌套的while的理解;先从头至尾进入最内层的while里循环,然后循环完后又到中层然后外层
          然后又从头至尾...... */
/*两个while嵌套:两个变量进入循环都是在变动的,但会满足进入外循环的变量先不变,然后进入内循环的变量
在一直改变,直到内循环停止,然后再进入外循环,外循环变量变动,然后再进入内循环。 */
/*关于格式:其实就是打印出换行,空格。内循环一次停止后打印出换行即可。 */


#include<stdio.h>

int main()
{
	int n;
	scanf("%d",&n);
	int i,j;
	i=1;
	while(i<=n){
		j=1;
		while(j<=i){
			printf("%d*%d=%d",j,i,j*i);
			if(j*i<10){
				printf("   ");
			}else{
				printf("  ");
			}
			
			j++;
		}printf("\n");
		i++;
	}
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值