C语言打印输出水仙花数
时间: 2023-11-23 22:58:25 浏览: 179
以下是C语言打印输出水仙花数的代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main(){
int a = 0; //百位
int b = 0; //十位
int c = 0; //个位
for(int i = 100; i < 1000; i++){
a = i / 100;
b = i / 10 % 10;
c = i % 10;
if(i == a*a*a + b*b*b + c*c*c){
printf("%d\n", i);
}
}
return 0;
}
```
该程序使用for循环遍历100到999之间的所有三位数,然后将其百位、十位和个位分别计算出来。接着,使用if语句判断该数是否为水仙花数,如果是,则输出该数。
相关问题
C语言打印出水仙花数并输出第几朵水仙花
水仙花数(Narcissistic Number),也称为自恋数,是指一个数字等于其各个位上的数字的立方之和。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在C语言中,你可以创建一个函数来检查一个数是否是水仙花数,然后遍历一定范围内的数字,找出所有的水仙花数并计数。下面是一个简单的示例代码:
```c
#include <stdio.h>
int cube(int num) {
return num * num * num;
}
int is_narcissistic(int n) {
int sum = 0;
int temp = n;
while (temp != 0) {
int digit = temp % 10;
sum += cube(digit);
temp /= 10;
}
return sum == n;
}
void print_narcissists(int start, int end) {
int count = 0;
for (int i = start; i <= end; i++) {
if (is_narcissistic(i)) {
printf("%d 是第%ld朵水仙花\n", i, ++count);
}
}
}
int main() {
int range_start = 100;
int range_end = 999;
print_narcissists(range_start, range_end);
return 0;
}
```
这个程序会在指定范围内找出所有水仙花数,并在每次找到时输出它是第几个水仙花。
C语言打印出水仙花数并输出第几朵水仙花,使用for语句
水仙花数是一种特殊的整数,它的各位数字立方之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
在C语言中,你可以使用for循环遍历从1到某个范围内的整数,并检查它们是否满足水仙花数的条件。以下是简单的程序示例:
```c
#include <stdio.h>
int is_armstrong(int num) {
int original_num, remainder, sum = 0;
original_num = num;
// 将数字分解成各个位
while (num != 0) {
remainder = num % 10;
sum += remainder * remainder * remainder; // 计算立方和
num /= 10;
}
// 检查是否是水仙花数
return (original_num == sum);
}
void print_narcissistic_numbers(int start, int end) {
for (int i = start; i <= end; ++i) {
if (is_armstrong(i)) {
printf("第%d朵水仙花数是:%d\n", i - start + 1, i);
}
}
}
int main() {
int range_start = 100; // 设定查找范围,通常较小的水仙花数在三位数范围内
print_narcissistic_numbers(range_start, range_start * 10); // 打印100到1000之间的水仙花数
return 0;
}
```
当你运行这个程序,它会打印出100到1000之间所有的水仙花数及其顺序。你可以根据需要调整`range_start`的值来改变查找范围。
阅读全文