给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

简介: 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

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


image.png

相关文章
|
5月前
|
存储
【题型总结】寻找满足字符出现奇数次/偶数次的子串个数或者子串最长长度
【题型总结】寻找满足字符出现奇数次/偶数次的子串个数或者子串最长长度
92 0
顺序打印整型数字的每一位
顺序打印整型数字的每一位
45 0
输出1234无重复的三位数
输出1234无重复的三位数
111 0
|
算法
输出1234无重复三位数
输出1234无重复三位数
90 0
7-10 求数字个数
7-10 求数字个数
83 0
多组输入,一个整数(3~20),表示数字三角形边的长度,即数字的数量,也表示输出行数。
多组输入,一个整数(3~20),表示数字三角形边的长度,即数字的数量,也表示输出行数。
133 0
多组输入,一个整数(3~20),表示数字三角形边的长度,即数字的数量,也表示输出行数。
|
机器学习/深度学习 Java
Java数字黑洞给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到 一个新的数字。一直重复这样做,我们很快会停在有“数字
Java数字黑洞给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到 一个新的数字。一直重复这样做,我们很快会停在有“数字
131 0
|
机器学习/深度学习 CDN
编写程序统计从键盘输入的一行文本中各个字母的个数。 输入以回车键结束。 不区分大小写,大写字母与相应的小写字母按照同一个字母看待。 要求输出按照各个字母出现的个数从大到小进行排序,出现的个数相同的,按
编写程序统计从键盘输入的一行文本中各个字母的个数。 输入以回车键结束。 不区分大小写,大写字母与相应的小写字母按照同一个字母看待。 要求输出按照各个字母出现的个数从大到小进行排序,出现的个数相同的,按
363 0
|
算法
例题:1.正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数 2.将一句话的单词进行倒置,单词之间空格,标点不倒置,字母不超100
例题:1.正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数 2.将一句话的单词进行倒置,单词之间空格,标点不倒置,字母不超100
192 0
AcWing 761. 字符串中的数字个数
AcWing 761. 字符串中的数字个数
58 0
AcWing 761. 字符串中的数字个数