鱼C论坛

 找回密码
 立即注册
查看: 2526|回复: 9

[已解决]整数的逆序

[复制链接]
发表于 2017-10-24 16:20:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
程序每次读入一个正整数N(N的位数小于10位),然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入70000,输出应该是7。
最佳答案
2017-10-24 16:59:54
你是要程序吗?我给不了,但是我给你思路,你自己写一下:
1. 输入数字的时候可以输入两个信息,一个是数字,一个是该数字的位数,并创建一个大小为位数的数组。
2. 假设 a = 7000, 搞个循环for,判断条件就是位数,再定义一个flag = 1做判断。
3. for里不断的进行b = a%10,将 b 存放入数组内,这样就可以做到倒叙放置。
4. 再定义for循环和flag = 0做判断,从数组里读取数,在满足 flag != 0 或者读取数不为0就将flag = 1并打印数字。这样,可以做到如10100这种数字的时候,中间的0可以打印。
思路就那样,当然效率有点低。可以把第4步的判断放入第3步,直接判断是末尾的0就不放入数组,那样,第4步可以直接打印。当然了,也可以直接第3步判断不是末尾0直接输出。动手试一下吧,加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-24 16:59:54 | 显示全部楼层    本楼为最佳答案   
你是要程序吗?我给不了,但是我给你思路,你自己写一下:
1. 输入数字的时候可以输入两个信息,一个是数字,一个是该数字的位数,并创建一个大小为位数的数组。
2. 假设 a = 7000, 搞个循环for,判断条件就是位数,再定义一个flag = 1做判断。
3. for里不断的进行b = a%10,将 b 存放入数组内,这样就可以做到倒叙放置。
4. 再定义for循环和flag = 0做判断,从数组里读取数,在满足 flag != 0 或者读取数不为0就将flag = 1并打印数字。这样,可以做到如10100这种数字的时候,中间的0可以打印。
思路就那样,当然效率有点低。可以把第4步的判断放入第3步,直接判断是末尾的0就不放入数组,那样,第4步可以直接打印。当然了,也可以直接第3步判断不是末尾0直接输出。动手试一下吧,加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-24 17:13:04 | 显示全部楼层
本帖最后由 hacker.jin 于 2017-10-24 17:48 编辑

#include <stdio.h>
long pow_10(int n);

int main()
{
        long num = 0;//输入的数字
        long new = 0;//处理后的数字
        scanf("%ld",&num);//获取输入的数字
        new=num;//先直接把输入的数字给新数字(计算数字的位数要用)
        int temp = 0;//数字的位数
        while(new /= 10)//计算数字的有多少位
        {
              temp++;                                                                        
        };
        new = 0;//重新吧新数字归零
        do{//自己理解,不解释
                new += (num % 10) * pow_10(temp--);
        }while(num /= 10);
        printf("%d\n",new);//打印
        return 0;

}

//计算10的n次方
long pow_10(int n)
{
        if(n <= 0){
                return 1;
        }
        long x = 10;
        while(--n)
        {
                x*=10;
        };
        return x;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-24 17:13:49 | 显示全部楼层
纯数学计算,采纳的话晚上给你弄个字符串版
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-24 20:41:03 | 显示全部楼层
hacker.jin 发表于 2017-10-24 17:13
#include
long pow_10(int n);

do{ } while 里可以直接 ( num%10 ) *pow(10, --temp); 吧?
思考了下好像不会出错,会吗?不会我就给采纳了哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-25 11:36:27 | 显示全部楼层
hacker.jin 发表于 2017-10-24 17:13
纯数学计算,采纳的话晚上给你弄个字符串版

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-27 09:25:21 | 显示全部楼层
丶忘却的年少o 发表于 2017-10-24 20:41
do{ } while 里可以直接 ( num%10 ) *pow(10, --temp); 吧?
思考了下好像不会出错,会吗?不会我就给采 ...

我靠,  我只是不想用外部库,全部自己实现而已,math。h里面有pow函数和pow10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-27 10:48:12 | 显示全部楼层
hacker.jin 发表于 2017-10-27 09:25
我靠,  我只是不想用外部库,全部自己实现而已,math。h里面有pow函数和pow10

人家不知道还有pow10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-27 15:33:05 | 显示全部楼层

   字符串版木有了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-27 15:41:37 | 显示全部楼层

楼主表示很无奈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-30 23:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表