且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

练习水仙花数感悟!

更新时间:2022-10-03 20:29:01

     一开始我是不知道水仙花数是3位数以上的,所以就写了一个求位数的模块(我也是醉了,如果知道,就不用这么麻烦)

开始代码:

#include<stdio.h> 
#include<math.h>
int count(int i)
{      
 int count = 0,remainder = 0;
 while(i != 0)
 {
  remainder = i%10;
  i = i/10;
  count++;
 }
 return count;
}

//求位数!
int main()
{
 int i = 0,j = 0,sum = 0,remainder = 0;
 for(i=10;i<1000;i++)
 {
  j = count(i);

while(k != 0)
  {
   remainder = k%10;
   k = k/10;
   sum += pow(remainder,j);
  }
  if(i == sum)
  {
   printf("%d\n",i);
  }
 }
 return 0;
}

感悟:当调试代码时,就出现了死循环,怎么也打不到错误在哪,后来进行断点调试时才发现for循环里的“i”和“sum”是一直变化的!

改正后的主函数:int main()
{
 int i = 0,j = 0,k = 0,sum = 0,remainder = 0;
 for(i=10;i<1000;i++)
 {
  k = i;
  sum = 0;
  j = count(i);
  while(k != 0)
  {
   remainder = k%10;
   k = k/10;
   sum += pow(remainder,j);
  }
  if(i == sum)
  {
   printf("%d\n",i);
  }
 }
 return 0;
}

此博客后来补上的,之前不会操作,嘿嘿......










本文转自 ye小灰灰  51CTO博客,原文链接:http://blog.51cto.com/10704527/1704942,如需转载请自行联系原作者