判断一个数是不是水仙花数

墨蓝 2022-08-25 09:19 361阅读 0赞



// 功能:判断输入 nValue 是否为水仙花数
// 输入: nValue为正整数
// 输出:无
// 返回:如果输入为水仙花数,返回1,否则返回0
// 例如:输入153会返回1

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. unsigned int IsDaffodilNum(unsigned int nValue)
  4. {
  5. unsigned int Value=nValue;
  6. int count=0;
  7. int a[10]={0};
  8. int i=0;
  9. int sum=0;
  10. int temp=1;
  11. if(Value<100)//确认是否是三位数以上
  12. {
  13. return 0;
  14. }
  15. else
  16. {
  17. while(Value>9)//利用循环找出这个数为几位数
  18. {
  19. a[i]=Value%10;
  20. Value=Value/10;
  21. i++;
  22. }
  23. a[i]=Value;//把个数为放入数组
  24. count=i+1;
  25. for(int j=0;j<count;j++)//利用循环把每位数相乘count次,在加起来
  26. {
  27. for(int k=0;k<count;k++)
  28. {
  29. temp=temp*a[j];
  30. }
  31. sum=sum+temp;
  32. temp=1;//要记得复位不然temp会越来越大
  33. }
  34. if(sum==nValue)
  35. {
  36. return 1;
  37. }
  38. }
  39. return 0;
  40. }
  41. void main()
  42. {
  43. unsigned int Value;
  44. printf("请输入要验证的数字:\n");
  45. scanf_s("%d",&Value);
  46. if(IsDaffodilNum(Value))
  47. {
  48. printf("%d是水仙花数\n",Value);
  49. }
  50. else
  51. {
  52. printf("%d不是水仙花数\n",Value);
  53. }
  54. getchar();
  55. getchar();
  56. }

发表评论

表情:
评论列表 (有 0 条评论,361人围观)

还没有评论,来说两句吧...

相关阅读

    相关 200-判断一个快乐

    题目如下: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为

    相关 判断一个“快乐

    问题描述: 一个“快乐数”定义:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1.如果可以变为