C语言实现
方法1:直接计算
c复制代码
#include <stdio.h>
void reverseAndCountDigits(int n) {
int count = 0;
int reversed = 0;
while (n > 0) {
int digit = n % 10;
reversed = reversed * 10 + digit;
n /= 10;
count++;
}
printf("它是%d位数\n", count);
printf("逆序为:%d\n", reversed);
}
int main() {
int num;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
reverseAndCountDigits(num);
return 0;
}
方法2:使用数组(虽然对于简单问题可能稍显复杂,但展示了另一种思路)
c复制代码
#include <stdio.h>
void reverseAndCountDigits(int n) {
int digits[5]; // 假设最多5位
int count = 0;
while (n > 0) {
digits[count++] = n % 10;
n /= 10;
}
printf("它是%d位数\n", count);
printf("逆序为:", count);
for (int i = count - 1; i >= 0; i--) {
printf("%d", digits[i]);
}
printf("\n");
}
int main() {
int num;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
reverseAndCountDigits(num);
return 0;
}
Python实现
方法1:字符串操作
python复制代码
def reverse_and_count_digits(n):
n_str = str(n)
count = len(n_str)
reversed_n = n_str[::-1]
print(f"它是{count}位数")
print(f"逆序为:{reversed_n}")
num = int(input("请输入一个不多于5位的正整数:"))
reverse_and_count_digits(num)
方法2:数学方法(类似于C语言的第一种方法)
python复制代码
def reverse_and_count_digits(n):
count = 0
reversed_n = 0
while n > 0:
digit = n % 10
reversed_n = reversed_n * 10 + digit
n //= 10
count += 1
print(f"它是{count}位数")
print(f"逆序为:{reversed_n}")
num = int(input("请输入一个不多于5位的正整数:"))
reverse_and_count_digits(num)
以上分别展示了C语言和Python中处理这个问题的两种方法。C语言展示了直接计算和使用数组两种不同方式,而Python则通过字符串操作和数学方法(类似于C语言的第一种方法)来实现。