PTA-水仙花

#include
#include

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  的值一直在变化;

 

 

 

 

你可能感兴趣的:(PTA)