PTA-水仙花

#include<stdio.h>
#include<math.h>

int main()

{

    int a,b=1,i,c,d,j,sum=0,n;

    scanf("%d",&n);

    {for(i=1;i<=(n-1);i++)
      b=b*10;}

    for(i=b;i<=(b*10);i++)
{   c=i;

    sum=0;
        while(c!=0)

    {

        a=c%10;
        d=a;
        c=c/10;
        {for(j=1;j<=(n-1);j++)
        a=a*d;}
        sum=sum+a;
    }
    if(i==sum)
        printf("%d\n",i);
    else
        continue;
}
}

 

1,关于for循环的嵌套 善于运用大括号 达到自己想要的运算步骤,

2,模拟计算机检查错误,像这个题 起先我用的是 pow() 但是 报错运行超时,起先 第一个求“d”的循环语句,我一直写的是for(i=1;i<=n;i++)

3,这样求出的就是(n+1)位数,所以这就是模拟计算机的好处 ,可以找到自己的漏洞,

4,对continue和break的用法 必须在循环里面才能用

关建:找出一个 n位数开头的数 利用第一层循环 判断符合条件的数;

        1,怎么利用循环找出这个数;

        2,怎么用处理for循环解决次方问题;

 

 

思路:

输入n 利用一个循环 找出n位数开头  利用求余 求n次方和判断 ;

利用for循环求n次方需要把每一次求得的余数‘a’赋值给一‘d’个数然后再用for循环求得的n次方和 不能直接利用a的值直接循环  a  的值一直在变化;

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值