21xrx.com
2024-11-22 14:55:22 Friday
登录
文章检索 我的文章 写文章
C中的阿姆斯特朗数
2021-07-06 22:21:44 深夜i     --     --
C

阿姆斯特朗数 C 程序来检查一个数字是否是阿姆斯特朗数,它是一个数字,它等于数字总和的数字总位数的幂。 一些阿姆斯壮数是:0、1、2、3、153、370、407、1634、8208 等。阅读有关阿姆斯壮数的更多信息。 我们将在我们的程序中考虑以十为基数的数字。 执行此操作的算法是:首先,我们计算程序中的位数,然后计算各个位数的总和对位数的幂。 如果该总和等于输入数字,则该数字是阿姆斯特朗数,否则不是。 打印阿姆斯特朗数的 C 程序

 

例子:7 = 7^1371 = 3^3 + 7^3 + 1^3 (27 + 343 +1)8208 = 8^4 + 2^4 +0^4 + 8^4 (4096 + 16 + 0 + 4096).1741725 = 1^7 + 7^7 + 4^7 + 1^7 + 7^7 + 2^7 +5^7 (1 + 823543 + 16384 + 1 + 823543 +128 + 78125)

C中的阿姆斯特朗数程序

#include <stdio.h>


int power(int, int);

int main()
{
  int n, sum = 0, t, remainder, digits = 0;

  printf("Input an integer\n");
  scanf("%d", &n);

  t = n;
  // Count number of digits
  while (t != 0) {
    digits++;
    t = t/10;
  }

  t = n;

  while (t != 0) {
    remainder = t%10;
    sum = sum + power(remainder, digits);
    t = t/10;
  }

  if (n == sum)
    printf("%d is an Armstrong number.\n", n);
  else
    printf("%d isn't an Armstrong number.\n", n);

  return 0;
}

int power(int n, int r) {
  int c, p = 1;

  for (c = 1; c <= r; c++)
    p = p*n;

  return p;
}

 

程序输出:

下载检查阿姆斯壮编号程序。

使用函数检查阿姆斯壮数的C程序

我们将在我们的程序中使用 long long 数据类型,以便我们可以检查高达 2^64-1 的数字。

#include <stdio.h>
#define L long long


int check_armstrong(L);
L power(int, int);

int main () {
  L n;

  printf("Input a number\n");
  scanf("%lld", &n);

  if (check_armstrong(n) == 1)
    printf("%lld is an armstrong number.\n", n);
  else
    printf("%lld isn't an armstrong number.\n", n);

  return 0;
}

int check_armstrong(L n) {
  L sum = 0, t;
  int remainder, digits = 0;

  t = n;

  while (t != 0) {
    digits++;
    t = t/10;
  }

  t = n;

  while (t != 0) {
    remainder = t%10;
    sum = sum + power(remainder, digits);
    t = t/10;
  }

  if (n == sum)
    return 1;
  else
    return 0;
}

L power(int n, int r) {
  int c;
  L p = 1;

  for (c = 1; c <= r; c++)
    p = p*n;

  return p;
}

程序的输出:

Input a number
35641594208964132
35641594208964132 is an Armstrong number.

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章