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语言的第一种方法)来实现。