如何判断一个n位数各位不相等C语言
时间: 2024-11-22 07:40:02 浏览: 9
水仙花数,也称为阿姆斯特朗数,是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身 例如,153 是
在C语言中,判断一个n位数的每一位是否都不相等可以采用循环结构结合条件判断的方式。这里是一个简单的示例,假设我们有一个整数`num`作为输入:
```c
#include <stdio.h>
// 定义一个函数来检查n位数的每位是否都不同
int check_unique_digits(int num, int n) {
if (n <= 0 || num == 0) { // 如果位数小于等于0或数字本身为0,肯定不满足条件
return 0;
}
int digits[n]; // 存储每一位的数组
for (int i = 0; num != 0; ++i) {
digits[i] = num % 10; // 取出最后一位并去除
num /= 10; // 移除最后一位
if (i > 0 && digits[i] == digits[i - 1]) { // 检查当前位是否等于前一位
return 0; // 发现相同的,直接返回0
}
}
// 如果所有位都没有发现重复,返回1表示每位都不同
return 1;
}
int main() {
int num, n;
printf("请输入一个n位数(例如: 12345): ");
scanf("%d", &num);
printf("请输入位数: ");
scanf("%d", &n);
int result = check_unique_digits(num, n);
if (result) {
printf("该n位数的每一位都不相等.\n");
} else {
printf("该n位数有相同的数字.\n");
}
return 0;
}
```
阅读全文