• 判断任意位数的一个数是否为Armstrong数的算法


    所谓Armstrong数,就是n位数的各位数的n次方之和等于该数,如:
                               153=1^3+5^3+3^3
                               1634=1^4+6^4+3^4+4^4
    所以,要判断一个数是否为Armstrong数,就应该取出其各位数进行乘方后再相加,如果结果等于该数,则将其输出。于是该首先得到该数的位数,我是用以下算法实现的:
                                TempNumber=Number; 
                                while(TempNumber!=0) 
                                {
                                    TempNumber=TempNumber/10;
                                    n++;
                                 }
    得出的n,就是该数的位数。
    然后,再通过Armstrong数的判定规则来判断该数,
    我用了Sum+=(int)(pow(TempNumber/(int)(pow(10,m)),n))来实现各位数的累加,这样就能得到各位数的和了。

    C语言程序完整代码如下:



    #include<math.h>
    main()
    {
      int Number,TempNumber,Sum,m,n;
      Sum=0;
      n=0;

      /*输入一个整数*/
      printf("\nPlease input a number:");  
      scanf("%d",&Number);  

      /*获取当前输入数的位数*/
      TempNumber=Number;
      while(TempNumber!=0) 
      {
        TempNumber=TempNumber/10;
        n++;
      }

      /*判断该数是否为Amstrong数*/
      m=n-1;
      TempNumber=Number;
      while(TempNumber!=0)
      {
        Sum+=(int)(pow(TempNumber/(int)(pow(10,m)),n));
        TempNumber=TempNumber%(int)(pow(10,m));
        m--;
      }
      if(Sum==Number) printf("This number is a armstrong number!");
      else printf("Sorry,this number is not a armstrong number!");
      getch();
    }

  • 相关阅读:
    Elasticsearch入门教程
    Elasticsearch环境安装配置
    Elasticsearch教程
    linux下elasticsearch 安装、配置及示例
    Elasticsearch集群部署
    elasticsearch-hadoop使用
    Oracle监控的关键指标
    oracle分区表的使用和查询
    nginx访问控制用户认证两种方式
    nginx创建默认虚拟主机
  • 原文地址:https://www.cnblogs.com/Random/p/550029.html
Copyright © 2020-2023  润新知