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

相关文章
|
编译器 C语言
C语言中整数如何自动转换为浮点数
C语言中整数如何自动转换为浮点数
644 0
|
Ubuntu 虚拟化
.bundle文件如何安装
.bundle文件如何安装
951 0
【EDA】 Verdi 使用笔记
【EDA】 Verdi 使用笔记
3192 0
【EDA】 Verdi 使用笔记
|
12月前
|
存储 C语言
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
375 4
|
存储 运维 监控
阿里云物联网平台高级功能之固件升级
OTA(Over-the-Air Technology)即空中下载技术。阿里云物联网平台支持通过OTA方式进行设备固件升级。本文以MQTT协议下的固件升级为例,介绍OTA固件升级流程、数据流转使用的Topic和数据格式。本文使用MQTT.fx客户端模拟设备,进行固件升级流程的操作演示。
3269 0
阿里云物联网平台高级功能之固件升级
|
12月前
|
Java
Java运算符
Java运算符
95 12
|
9月前
|
存储 弹性计算 数据管理
阿里云对象存储OSS收费标准:存储、流量和请求等多个计费项详解
阿里云对象存储OSS提供多样化的计费模式,涵盖存储、流量、请求等多项费用。存储费用方面,按量付费标准型为0.09元/GB/月,包年包月则有9元40GB等多种选择。流量费用仅对公网出方向收费,价格区间从0.25至0.50元/GB不等,支持按量付费与流量包抵扣两种方式。更多详情及精准报价,欢迎访问阿里云OSS官方页面。
6477 1
|
9月前
|
存储 监控 程序员
21个Python脚本自动执行日常任务(1)
21个Python脚本自动执行日常任务(1)
|
SQL Serverless 数据库
HAVING和WHERE子句 有什么区别?
【8月更文挑战第2天】
358 17
HAVING和WHERE子句 有什么区别?
|
12月前
|
前端开发 Java 数据安全/隐私保护
Java修饰符
Java修饰符
85 9