个性化阅读
专注于IT技术分析

如何确定数字是否为C中的阿姆斯特朗数

在数论中, 一个阿姆斯特朗数或一个自恋数, 一个完美的数字不变量加正数基本上是一个数字, 该数字是其自身数字的总和, 每个数字的总和提高了数字的幂。此定义取决于所用数字系统的基数b, 例如, 对于十进制, b = 10或对于二进制系统, b = 2(在基数2中, 唯一的自恋数字是0和1.):

阿姆斯壮编号说明

在本文中, 我们将向你简要说明如何确定数字是否为C中的阿姆斯特朗数。

用C实现

在以下代码段中, 我们将读取用户提供的整数, 以验证它是否为阿姆斯壮数字。我们将使用while循环来检查number变量的值是否不为0。如果此条件为true, 我们将使用第一个循环来确定将数字除以包含副本的变量将以何种幂递增用户提供的数字, 直到它为0(因为copyNumber被声明为整数, 该值将自动解析为int, 例如0.15变为0, 退出循环)。

剩余的变量将把number的值的模数存储10, 并且使用pow()将剩余的value的值存储到powerNumber。最后, 最后一个” if”条件语句用于检查numberCopy和引发的值是否相等。如果条件为真, 则将打印阿姆斯壮编号。否则, 它将执行else条件语句, 并且不打印阿姆斯特朗编号:

#include<stdio.h>
#include<math.h>

int main()
{
	int number, raised = 0, powerNumber = 0, remaining, numberCopy;
	printf("Enter any number: ");

	scanf("%d", &number);

	numberCopy = number;

	while(numberCopy != 0){
		numberCopy = numberCopy/10;
		powerNumber++;
	}

	numberCopy = number;

	while(number!=0)
	{
		remaining = number % 10;
		raised += pow(remaining, powerNumber);
		number = number/10;
	}

	if(numberCopy == raised){
		printf("The given number is an armstrong number");
	}else{
		printf("The given number is not an armstrong number");
    }

	return 0;
}

如果编译代码, 控制台将启动并提示用户输入数字。你可以运行以下示例:

  • 1135:给定的号码不是阿姆斯壮号码
  • 407:给定数字是阿姆斯壮数字

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何确定数字是否为C中的阿姆斯特朗数

评论 抢沙发

评论前必须登录!