输出阿姆斯特朗数C语言
时间: 2023-05-17 20:06:29 浏览: 126
以下是输出阿姆斯特朗数的C语言代码:
#include <stdio.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("请输入一个三位数:");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0) {
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
if (result == num) {
printf("%d 是阿姆斯特朗数", num);
} else {
printf("%d 不是阿姆斯特朗数", num);
}
return 0;
}
相关问题
用C语言编译出1000以内的阿姆斯特朗数
以下是用C语言编写的程序,可以输出1000以内的阿姆斯特朗数:
```
#include <stdio.h>
#include <math.h>
int main()
{
int num, originalNum, remainder, n = 0, result = 0;
for(num = 1; num <= 1000; num++)
{
originalNum = num;
while(originalNum != 0)
{
originalNum /= 10;
++n;
}
originalNum = num;
while(originalNum != 0)
{
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
if(result == num)
{
printf("%d ", num);
}
n = 0;
result = 0;
}
return 0;
}
```
程序的思路是:依次遍历1到1000之间的数,分别计算每个数的位数和每个位上数字的n次方之和,如果等于该数本身,则该数是阿姆斯特朗数,将其输出。
用C语言编译出1000以内三位数的阿姆斯特朗数
以下是用C语言编写的程序,可以输出1000以内的三位数阿姆斯特朗数:
```
#include <stdio.h>
#include <math.h>
int main()
{
int num, originalNum, remainder, n = 0, result = 0;
for(num = 100; num <= 999; num++)
{
originalNum = num;
while(originalNum != 0)
{
originalNum /= 10;
++n;
}
originalNum = num;
while(originalNum != 0)
{
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
if(result == num)
{
printf("%d ", num);
}
n = 0;
result = 0;
}
return 0;
}
```
与上一个程序不同的是,这个程序遍历的数只有三位数,因此将遍历的范围限定在100到999之间即可。