-
2019-04-11 18:23:05
一、简单版(只实现这两个需求)
num=input('你好呀,请输入一个不多于五位的正整数>>>') print('嗯,我看过了,这是一个'+str(len(num))+'位数。') #len函数可以查看字符串的长度,也就是能得出这是一个几位数,用str转换成字符串之后才能跟前后文字拼接 print('我把它倒过来给你看看:',''.join(list(reversed(num)))) #reversed函数把原数字反转过来,返回的结果是迭代器 #用list函数把迭代器变成列表 #用join方法连接list里的所有元素,得到列表,用于连接的字符是什么也没有,所以就会无缝拼接
但是有一些数字翻转过来跟原来是一样的,比如8,88,858,8558,85658,所以下面的升级版会把这些无聊的翻转考虑进去,让程序更智能一点,更,em,可爱一点……
二、升级版
num=input('你好呀!请输入一个不多于五位的正整数:') print('嗯,我看过了。它是一个'+str(len(num))+'位数。') if (len(num)==1) or (len(num)<=3 and num[0]==num[-1]) or (num[0]==num[-1] and num[1]==num[-2]): #这里提出了三种懒得反转的情况,分别是只有一位数,比如8 #两位或者三位数,第一个数字和最后一个数字相同,比如88,858 #四位或者五位数,第一个数字和最后一个数字相同,第二个数字和倒数第二个数字相同,比如8558,85658 print('我本来想把它倒过来给你看看,但是它倒着写不好玩儿,算了吧~') else: print('我把它倒过来了,现在它变成了',''.join(list(reversed(num))))
三、自己造轮子(关注算法的请看)
num=input('请输入一个不超过5位的正整数>>>') num=int(num) #变量res用于存储逆转之后的数字 res=0 #变量count用于存储数字位数 count=0 #下面是这个算法的核心 while num !=0: #用取余数的方式取出当前的个位数字, # 把结果中原来已有的部分乘以10,加上刚取出来的个位数字。 #这就相当于把原来的部分往前挪了一下,给新来的个位数腾出来一个地方 res=res*10+num%10 #用除以10并向下取整的方式把已经处理过的数位去掉 num//=10 #每处理一次,就给计数器count加1,用这样的方式计算num是几位数 count+=1 print(f'这是一个{count}位数,它的逆序数字是{res:0>{count}}')
为了帮助大家更好地理解上述算法的核心,请看下面的图解:
如果这篇博文帮到了你,就请给我点个赞吧(#^.^#)
有疑问也欢迎留言~博主可nice啦,在线秒回ヾ(◍°∇°◍)ノ゙更多相关内容 -
ACMNO.25 C语言-间隔输出 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。...
2018-12-16 15:47:10写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。 输入 一个四位数 输出 增加空格输出 样例输入 1990 样例输出 1 9 9 0 来源/分类 C语言 ...题目描述
写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。
输入
一个四位数
输出
增加空格输出
样例输入
1990
样例输出
1 9 9 0
来源/分类
C语言
题目截图:
思路:原来以为是自己输出四个数,再让他们输出就好啦。 本想,这不过是在这些数中增加一些空格而已~ 后来提交之后答案错误~ 哈哈,才审好题目! 不过,乍眼一看还是有难度的。不过,自己利用/ %运算就可以顺利解决啦! 但是最后一个数,不能输出空格!这个要留在最后进行输出! void output(int a) {int i=0;int s=1000; for(;i<z-1;i++) { cout<<a/s<<" "; a%=s; s/=10; } cout<<a; }
代码:
#include<iostream> using namespace std; #define z 4 void output(int a) {int i=0;int s=1000; for(;i<z-1;i++) { cout<<a/s<<" "; a%=s; s/=10; } cout<<a; } int main() { int a;int i; cin>>a; output(a); }
代码截图:
运行结果:
OJ结果:
-
计算机原理中的字,位扩展,都给老子进来学,看不懂算我输!
2020-07-12 09:18:54文章目录涉及到的几个概念地址线与数据线字扩展与位扩展 涉及到的几个概念 MDR:数据寄存器,用来存入内存中读入/写出的信息。 MAR:地址寄存器,用来存放当前CPU访问的内存单元地址 地址线与数据线 地址线的作用...涉及到的几个概念
MDR:数据寄存器,用来存入内存中读入/写出的信息。
MAR:地址寄存器,用来存放当前CPU访问的内存单元地址地址线与数据线
- 地址线的作用:地址线的作用就是决定了数据的存储单元的位置,也决定了你有多少个能够存放数据的存储单元个数,这点不懂没关系,后面会解释的。
- 数据线的作用:数据线的作用就是决定了二进制的数据。
- 举个例子:地址线就是你家的门牌号,数据线就是待在家里边的你。比如现在有人想要找你,就要通过门牌号来找到你,也就是通过地址线来找到数据线决定的数据。
字扩展与位扩展
Xk × X位 其中Xk就是代表字扩展里的字,X位就是代表位扩展里边的位。
- 字扩展
字扩展就是要增加存储字的数量,也就是地址线的位数
举个栗子:现在我能搜索的门牌号范围只有一个村,现在我想能够搜索到一个镇的门牌号,怎么办?当然是要扩大能够搜索的范围呀,字扩展就是起到的这么一个作用。
- 例如利用1K×8位的DRAM芯片,设计2K×8位的DRAM存储器(字扩展)
这里为什么要把A10设置成片选端呢?因为它们不能同时工作,每个芯片提供8位数据,在数据线上会造成混乱,A10做片选信号,控制选中哪个芯片。 - A10等于0的时候范围是:A10A9A8A7A6A5A4A3A2A1A0=00000000000-01111111111B=0-1023
第一个芯片会工作,当A0到A9都为1时再增加A10就会变为1此时根据图可以看出CS0非=1是高电平,A10在经过一个非门使CS1非接收到0,此时第二个芯片工作,从10000000000=1024开始。 - A10等于1的时候范围是:A10A9A8A7A6A5A4A3A2A1A0=10000000000-11111111111B=1024-2047
扩展之前是0-1023,扩展之后是从0-2047.
这样就形成了字扩展。对应了上边的地址线作用中的定义,这样就扩大了存储单元的个数。
- 位扩展
位扩展就比较简单了,位扩展就是增大数据的范围,原本是四位D0到D3对应范围是0000-1111B= 0 - 15;变为八位之后是D0到D7对应范围变成00000000 - 11111111B=0 - 255;对应的图上的连线两个芯片八根数据线从D0到D7。一个芯片是数据的高四位,一个芯片是数据的低四位。
扩展之前是0-15,扩展之后0-255.
因为他们的地址线是连在一起的所以地址的范围两个芯片是一样的,对应的数据的地址也是一样的,取数据的时候根据地址取出第一个芯片的四位和第二个芯片的四位,最后形成八位的数据。
- 字位扩展
这里A11A10两个二进制数可以有00,01,10,11四种情况对应了四组二个芯片组成的八位存储器的选择。若有八个的话就要有A12A11A10三个二进制数000,001,010,011,100,101,110,111来代表八组二个芯片组成的八位存储器。
如果觉得博主写的可以的话,动动你的小手点个赞吧。
-
【技巧总结】位运算装逼指南
2019-11-18 13:34:09位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是...位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。
判断奇偶数
判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
if( n % 2) == 01 // n 是个奇数 }
如果把 n 以二进制的形式展示的话,其实我们只需要判断最后一个二进制位是 1 还是 0 就行了,如果是 1 的话,代表是奇数,如果是 0 则代表是偶数,所以采用位运算的方式的话,代码如下:
if(n & 1 == 1){ // n 是个奇数。 }
有人可能会说,我们写成 n % 2 的形式,编译器也会自动帮我们优化成位运算啊,这个确实,有些编译器确实会自动帮我们优化。但是,我们自己能够采用位运算的形式写出来,当然更好了。别人看到你的代码,我靠,牛逼啊。无形中还能装下逼,是不是。当然,时间效率也快很多,不信你去测试测试。
2、交换两个数
交换两个数相信很多人天天写过,我也相信你每次都会使用一个额外来变量来辅助交换,例如,我们要交换 x 与 y 值,传统代码如下:
int tmp = x; x = y; y = tmp;
这样写有问题吗?没问题,通俗易懂,万一哪天有人要为难你,**不允许你使用额外的辅助变量来完成交换呢?**你还别说,有人面试确实被问过,这个时候,位运算大法就来了。代码如下:
x = x ^ y // (1) y = x ^ y // (2) x = x ^ y // (3)
我靠,牛逼!三个都是 x ^ y,就莫名交换成功了。在此我解释下吧,我们知道,两个相同的数异或之后结果会等于 0,即 n ^ n = 0。并且任何数与 0 异或等于它本身,即 n ^ 0 = n。所以,解释如下:
把(1)中的 x 带入 (2)中的 x,有
y = x^y = (xy)y = x(yy) = x^0 = x。 x 的值成功赋给了 y。
对于(3),推导如下:
x = x^y = (xy)x = (xx)y = 0^y = y。
这里解释一下,异或运算支持运算的交换律和结合律哦。
以后你要是别人看不懂你的代码,逼格装高点,就可以在代码里面采用这样的公式来交换两个变量的值了,被打了不要找我。
讲这个呢,是想告诉你位运算的强大,让你以后能够更多着去利用位运算去解决一些问题,一时之间学不会也没事,看多了就学会了,不信?继续往下看,下面的这几道题,也是非常常见的,可能你之前也都做过。
3、找出没有重复的数
给你一组整型数据,这些数据中,其中有一个数只出现了一次,其他的数都出现了两次,让你来找出一个数 。
这道题可能很多人会用一个哈希表来存储,每次存储的时候,记录 某个数出现的次数,最后再遍历哈希表,看看哪个数只出现了一次。这种方法的时间复杂度为 O(n),空间复杂度也为 O(n)了。
然而我想告诉你的是,采用位运算来做,绝对高逼格!
我们刚才说过,两个相同的数异或的结果是 0,一个数和 0 异或的结果是它本身,所以我们把这一组整型全部异或一下,例如这组数据是:1, 2, 3, 4, 5, 1, 2, 3, 4。其中 5 只出现了一次,其他都出现了两次,把他们全部异或一下,结果如下:
由于异或支持交换律和结合律,所以:
123451234 = (11)(22)(33)(44)5= 00005 = 5。
也就是说,那些出现了两次的数异或之后会变成0,那个出现一次的数,和 0 异或之后就等于它本身。就问这个解法牛不牛逼?所以代码如下
int find(int[] arr){ int tmp = arr[0]; for(int i = 1;i < arr.length; i++){ tmp = tmp ^ arr[i]; } return tmp; }
时间复杂度为 O(n),空间复杂度为 O(1),而且看起来很牛逼。
4、m的n次方
如果让你求解 m 的 n 次方,并且不能使用系统自带的 pow 函数,你会怎么做呢?这还不简单,连续让 n 个 m 相乘就行了,代码如下:
int pow(int n){ int tmp = 1; for(int i = 1; i <= n; i++) { tmp = tmp * m; } return tmp; }
不过你要是这样做的话,我只能呵呵,时间复杂度为 O(n) 了,怕是小学生都会!如果让你用位运算来做,你会怎么做呢?
我举个例子吧,例如 n = 13,则 n 的二进制表示为 1101, 那么 m 的 13 次方可以拆解为:
m^1101 = m^0001 * m^0100 * m^1000。
我们可以通过 & 1和 >>1 来逐位读取 1101,为1时将该位代表的乘数累乘到最终结果。直接看代码吧,反而容易理解:
int pow(int n){ int sum = 1; int tmp = m; while(n != 0){ if(n & 1 == 1){ sum *= tmp; } tmp *= tmp; n = n >> 1; } return sum; }
时间复杂度近为 O(logn),而且看起来很牛逼。
这里说一下,位运算很多情况下都是很二进制扯上关系的,所以我们要判断是否是否位运算,很多情况下都会把他们拆分成二进制,然后观察特性,或者就是利用与,或,异或的特性来观察,总之,我觉得多看一些例子,加上自己多动手,就比较容易上手了。所以呢,继续往下看,注意,先别看答案,先看看自己会不会做。
5、找出不大于N的最大的2的幂指数
传统的做法就是让 1 不断着乘以 2,代码如下:
int findN(int N){ int sum = 1; while(true){ if(sum * 2 > N){ return sum; } sum = sum * 2; } }
这样做的话,时间复杂度是 O(logn),那如果改成位运算,该怎么做呢?我刚才说了,如果要弄成位运算的方式,很多时候我们把某个数拆成二进制,然后看看有哪些发现。这里我举个例子吧。
例如 N = 19,那么转换成二进制就是 00010011(这里为了方便,我采用8位的二进制来表示)。那么我们要找的数就是,把二进制中最左边的 1 保留,后面的 1 全部变为 0。即我们的目标数是 00010000。那么如何获得这个数呢?相应解法如下:
1、找到最左边的 1,然后把它右边的所有 0 变成 1
2、把得到的数值加 1,可以得到 00100000即 00011111 + 1 = 00100000。
3、把 得到的 00100000 向右移动一位,即可得到 00010000,即 00100000 >> 1 = 00010000。
那么问题来了,第一步中把最左边 1 中后面的 0 转化为 1 该怎么弄呢?我先给出代码再解释吧。下面这段代码就可以把最左边 1 中后面的 0 全部转化为 1,
n |= n >> 1; n |= n >> 2; n |= n >> 4;
就是通过把 n 右移并且做或运算即可得到。我解释下吧,我们假设最左边的 1 处于二进制位中的第 k 位(从左往右数),那么把 n 右移一位之后,那么得到的结果中第 k+1 位也必定为 1,然后把 n 与右移后的结果做或运算,那么得到的结果中第 k 和 第 k + 1 位必定是 1;同样的道理,再次把 n 右移两位,那么得到的结果中第 k+2和第 k+3 位必定是 1,然后再次做或运算,那么就能得到第 k, k+1, k+2, k+3 都是 1,如此往复下去…
最终的代码如下
int findN(int n){ n |= n >> 1; n |= n >> 2; n |= n >> 4; n |= n >> 8 // 整型一般是 32 位,上面我是假设 8 位。 return (n + 1) >> 1; }
这种做法的时间复杂度近似 O(1),重点是,高逼格。
总结
上面讲了 5 道题,本来想写十道的,发现五道就已经写了好久了,,,,十道的话,怕你们也没耐心写完,而且一道比一道难的那种,,,,。
不过呢,我给出的这些例子中,并不是让你们学会了这些题就 Ok,而且让你们有一个意识:很多时候,位运算是个不错的选择,至少时间效率会快很多,而且高逼格,装逼必备。所以呢,以后可以多尝试去使用位运算哦,以后我会再给大家找些题来讲讲,遇到高逼格的,感觉很不错的,就会拿来供大家学习了。
兄dei,如果觉得我写的不错,不妨帮个忙
1、关注我的原创微信公众号「帅地玩编程」,每天准时推送干货技术文章,专注于写算法 + 计算机基础知识(计算机网络+ 操作系统+数据库+Linux),听说关注了的不优秀也会变得优秀哦。
2、给俺点个赞呗,可以让更多的人看到这篇文章,顺便激励下我,嘻嘻。
作者简洁
作者:大家好,我是帅地,从大学、自学一路走来,深知算法,计算机基础知识的重要性,所以申请了一个微星公众号『帅地玩编程』,专业于写这些底层知识,提升我们的内功,帅地期待你的关注,和我一起学习。 转载说明:未获得授权,禁止转载
-
从键盘输入一个三位数整数,编写程序分别求其个位十位百位数,并输出。
2021-07-18 01:18:10求:个位数,十位数,百位数,这个主要考察你对输入函数(scanf("",&))输出函数(printf("",))和运算符的使用情况。...//*除掉100就剩余下的一个两位数了,除掉10 刚好是十位数上的数字,前面int整形所... -
Python在26个字母大小写和9个数字组成的列表中随机生成8位密码。
2019-06-05 10:35:33from random import * ... frequency = 0 #用于计算生成密码的个数 Allpasswd = [] #用于存放生成的密码 while frequency < b: #用一个while循环控制生成的密码个数,b是参数,由用户输入 p... -
通过正则表达式限制输入框只能数字,且不能以0开头
2019-07-18 08:53:29这个金额只能是整数,我们都知道金额肯定不能以0开头。 var value = val.replace(/\D/g, '') 上面这行代码的意思是当输入的是除了数字以外的字符时用空代替。这时候我们再进行处理0开头的输入即可。 下面这段是... -
试编写汇编语言程序,要求从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数
2020-05-08 12:08:18CODE SEGMENT ASSUME CS:CODE START: mov bx,0 mov ch,4 ...键盘输入4个16进制数 int 21h cmp al,39h ;判断是0~9还是A~H,若是数字减30H,否则还要减07H jbe next sub al,07h next: sub al,30h shl bx... -
int为什么占4个字节?一个字节为什么是8位?
2019-11-04 16:17:06不知道大家有没有思考过这样的问题,一个字节为什么是8位呀,也许还有小伙伴不知道我说的这些是什么,没关系往下看。 第一个解释(历史)是IBM为System/360设计了一套8位EBCDIC编码,涵盖了数字、大小写字母和大部分... -
☀️光天化日学C语言☀️(14)- 位运算 & 的应用 | C语言课上学不到的哦~
2021-07-01 08:27:05位运算符 - 位与的应用 -
面试官:为什么 0.1 + 0.2 == 0.300000004 ?
2021-04-21 08:51:44十进制转换二进制的方法相信大家都熟能生巧了,如果你说你还不知道,我觉得你还是太谦虚,可能你只是忘记了,即使你真的忘记了,不怕,贴心的小林在和你一起回忆一下。 十进制数转二进制采用的是除 2 -
什么是按位或,什么是按位异或,什么是按位与?
2018-08-10 11:05:12只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9... -
你真的懂 Unicode 和 UTF-8 是什么关系吗?来看看这个就彻底懂了!
2018-11-19 22:13:46下面我们就来了解一下 Unicode 和 UTF-8 编码到底有什么关系。 要弄清 Unicode 与 UTF-8 的关系,我们还得从他们的来源说起,下来我们从刚开始的编码说起,直到 Unicode 的出现,我们就会感觉到他们之间的关系 ... -
MODBUS协议整理——写多个线圈寄存器0FH,写多个保持寄存器10H
2013-11-17 11:22:382.7 写多个线圈寄存器 0FH 1) 说明 写多个线圈寄存器。若数据区的某位值为“1”表示被请求的相应线圈状态为ON,若某位值为“0”,则为状态为OFF。 2) 查询 从机地址为11H,线圈寄存器的起始地址为0013H,线圈... -
I2C关于读写控制位
2017-11-15 23:18:27此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。 2.2 开始和结束 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电... -
定义数据类型为double,输出时也是double型输出,为什么小数点后位数只有六位?
2019-03-10 14:34:22因为C标准规定的是double...编译器是默认输出浮点数小数点后6位,这两个不冲突。 当然如果你需要显示小数点后更多位数字,可以这么写printf("%.nf",a);n是多少就输出几位小数 输出float类型数值同理。 ... -
RC522写块0复制S50卡
2018-03-25 23:16:51觉得自己做事总是三分热度,今天网上看见个不了解的东西去做,一做遇到问题又搁置在那里,这样真不好。对于RC522这个模块,大学的时候撸了一下,记得当时有个上位机可以读写卡片,配的51的程序,说实话用了stm32后... -
写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0...
2018-02-05 13:26:45写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。 输入 一个四位数 输出 增加空格输出 样例输入 1990 样例输出 1 9... -
STM32入门开发: 介绍SPI总线、读写W25Q64(FLASH)(硬件+模拟时序)
2021-06-07 08:51:15模拟时序更加方便移植到其他单片机,更加方便学习理解SPI时序,通用性更高,不分MCU; 硬件时序效率更高,每个MCU配置方法不同,依赖MCU硬件本身支持。 存储器件: 采用华邦W25Q64 flash存储芯片... -
什么是按位或|,什么是按位与&,什么是按位异或^ (双目运算符)
2019-03-11 15:33:46只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)... -
密码验证:验证条件是:密码不能少于6位,且不能是连续的数字,中间不能有连续3个以上的重复数字
2018-12-28 09:25:36/^[0-9A-Za-z]{6,}$/ 这是是密码不能少于6位, var reg1 = /^[0-9A-Za-z]{6,}$/g, reg2 = /\d{3}/g; var str = '22aa333'; if (reg1.test(str) && !reg2.test(str)) { console.log('密码... -
窗宽窗位到底是什么
2020-02-27 16:29:081. 为什么有窗宽窗位? 医学图像领域的关键技术窗技术,是CT检查中用以观察不同密度的正常组织或病变的一种显示技术,包括窗宽(window width)和窗位(window level)。由于各种组织结构或病变具有不同的CT值,因此想... -
0xff(十六进制0xff表示什么)
2021-05-22 17:36:470xff 从数值上看,0xff表示一个十六进制数FF,也就是十进制的255。从电平高低来看,比如读取P1口得到0xFF,表示P1口8个引脚都是高电平。以0x开始的数据表示16进制,0xff换成十进制为255。A,B,C,D,E,F这五个字母来... -
彻底搞清楚Java的位运算(位实现加减乘除)
2019-12-23 20:27:19二进制位运算是最贴近计算机真实运算操作,通过位运算,我们可以高效的完成各种基础运算(加减乘除取余等),我们还可以使用位运算巧妙的完成原本很复杂的工作,真正理解计算机,我们才能更好的使用计算机。... -
Java保留两位小数,整数是零不显示
2017-11-02 15:36:00“月落乌啼霜满天,江枫渔火对愁眠”很多时候,我们在用java写程序时,要展示一些数据,比如同比,占比,环比之类的,这个时候就难免会遇到小数,一般都是保留两位小数.但是会出现这种情况,保留两位小数,如果整数位是零的话,... -
习题 7.8 写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,...
2017-09-14 14:14:16C程序设计(第四版) 谭浩强 习题7.8 个人设计习题 7.8 写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出“1 9 9 0”。代码块:#include <stdio.h>char addsp... -
sqlserver位数不够左边补0
2018-08-07 20:46:28有的时候需要循环存放一从1开始的字符串 、位数还有要求,我第一次在写的时候想着在左边拼接几个0不就行了,写完我就发现超过10就不行了,位数超了 这个时候就需要用到左补0方法 下面我给大家一个示例: ... -
校园水卡M1卡破解写卡
2018-07-03 14:02:59首先谈谈M1卡的规格,M1卡的容量为1KB,好多网上写8KB,这里其实是有个误区,应该是8K位。1Byte=1B=8位。其实也就是说8k位想到于1KB的容量,也就是说一个4GB的U盘的存储空间约等于四百万张m1卡的空间。 虽然空间... -
给一个不多于5位的正整数,要求: ①求出它是几位数②分别输出每一位数③按逆序输出各位数字,例如原数为...
2021-04-04 23:09:58给一个不多于5位的正整数,要求: ①求出它是几位数②分别输出每一位数③按逆序输出各位数字,例如原数为123,应输出321 int main() { int n; int a,b,c,d,e;//个,十,百,千,万 ...//个位 if(a!