给一个不多于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

目录
打赏
0
2
2
0
52
分享
相关文章
|
12月前
|
【题型总结】寻找满足字符出现奇数次/偶数次的子串个数或者子串最长长度
【题型总结】寻找满足字符出现奇数次/偶数次的子串个数或者子串最长长度
164 0
|
12月前
|
LeetCode算法题---无重复字符的最长子串、寻找两个正序数组的中位数(三)
LeetCode算法题---无重复字符的最长子串、寻找两个正序数组的中位数(三)
90 0
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
221 4
|
7月前
|
11月前
|
输⼊⼀个正整数,计算这个整数是几位数
输⼊⼀个正整数,计算这个整数是几位数
求一个数是几位数并输出逆序数
求一个数是几位数并输出逆序数
142 0
【线段树】2213. 由单个字符重复的最长子字符串
【线段树】2213. 由单个字符重复的最长子字符串
输入7个整数(0-100),代表7个整数,用空格隔开.小数点后保留两位小数,每行输入后换行.去掉一个最高分一个最低分,输出每组的平均分.用一个循环完成(7个面试官问题)
输入7个整数(0-100),代表7个整数,用空格隔开.小数点后保留两位小数,每行输入后换行.去掉一个最高分一个最低分,输出每组的平均分.用一个循环完成(7个面试官问题)
202 0
输入7个整数(0-100),代表7个整数,用空格隔开.小数点后保留两位小数,每行输入后换行.去掉一个最高分一个最低分,输出每组的平均分.用一个循环完成(7个面试官问题)
Acwing 771.双指针 字符串中最长的连续出现的字符
Acwing 771.双指针 字符串中最长的连续出现的字符
104 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等