题目描述
输入一个整数,从高位开始逐位分割并输出各位数字。
输入
输入一个正整数n,n是int型数据
输出
依次输出各位上的数字,每一个数字后面有一个空格,输出占一行。例如,输入 12345 ,输出 1 2 3 4 5
样例输入 Copy
12345
样例输出 Copy
1 2 3 4 5
提示
注意整数运算避免使用double类型的函数如pow()。

本题可先用一个循环计算出最高位的位权h,然后再用一个循环,循环内容为: 输出最高位(n/h)、扔掉最高位(n = n%h)、降低最高位位权(h = h/10),直到位权h为0。

我第一次提交时未按提示来,如下:

#include<stdio.h>
#include<math.h>int main()
{int a;int n,i=0,j;scanf("%d",&n);j=n;//为了避免n的变化,选择新变量计数while(j/10!=0)//确定n的位数{j=j/10;i++;//i为n的位数-1}while(n/10!=0){a=n/pow(10,i);//从首项开始剥离各位数字printf("%d ",a);n=n%(int)pow(10,i);//将位数剥离后剩下尾数达循环目的进行下次运算//%只能进行整型运算,将pow函数强制转换为整型i--;}printf("%d",n);return 0;
}

输出答案正确(有兴趣的可以复制试一试),
但是!!
结果·····超时!!!
所以,我们编写程序应该使其运算量尽可能减少,不然很容易超时,不仅仅是为了答题正确,也是为了养成良好习惯。
修改如下:

#include<stdio.h>
#include<math.h>int main()
{int a;int n,i=1,j;scanf("%d",&n);j=n;//为了避免n的变化,选择新变量计数while(j/10!=0)//确定n的位数{j=j/10;i*=10;}while(n/10!=0){a=n/i;//从首项开始剥离各位数字printf("%d ",a);n=n%i;//将位数剥离后剩下尾数达循环目的进行下次运算i/=10;}printf("%d",n);return 0;
}

对比两个代码,只是改掉了pow函数,但事实上其运算挺耗时间,提示了明确不用pow。

OJ1061: 顺序输出各位数字(C语言)(谈程序优化问题及pow函数耗时问题)相关推荐

  1. ZZULIOJ 1061:顺序输出各位数字

    顺序输出各位数字 题目描述 输入一个不大于10的9次方的正整数,从高位开始逐位分割并输出各位数字. 输入 输入一个正整数n,n是int型数据 输出 依次输出各位上的数字,每一个数字后面有一个空格,输出 ...

  2. 给出一个正整数,求出它是几位数,逆序输出各位数字,顺序输出各位数字。

    /// (1)给出一个整数1235644 打印出来应该为7. c程序应该为: (2)求出逆序数字 例如输入数字123456 而打印出来则是654321 (3)而顺序输出各个数字,逆序的话是先输出再除等 ...

  3. C语言游戏: 俄罗斯方块(Tetris)@兼谈程序优化方法 [源码+exe下载]

    消除重复:如何将程序逻辑与数据分开? ----俄罗斯方块(Tetris)@兼谈程序优化方法 背景提示: 1,数据,是程序设计的根本.因为任何程序都可以看作是一组数据,和作用于其上的一组操作,这也是面向 ...

  4. 怎么输出链表长度C语言,下面程序输出结果不,如输出的链表长度结果不对,不知有关问题在哪里。请高手看下...

    当前位置:我的异常网» C语言 » 下面程序输出结果不,如输出的链表长度结果不对,不 下面程序输出结果不,如输出的链表长度结果不对,不知有关问题在哪里.请高手看下 www.myexceptions.n ...

  5. c语言printf输出整数数字,C语言 念数字 输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字...

    你的程序有很多不对的地方,没必要用数组,多次的getchar();也不知道是干啥的,我写一个程序贴给你看看吧,有问题再问. #include void judge_num(int num); void ...

  6. c语言组成整数的最大数字,c语言 编写程序将一个正整数中的所有偶数数字取出来并用这些数字构成一个最大数。...

    满意答案 litielige 2016.11.20 采纳率:48%    等级:7 已帮助:515人 #include long fun(long s) { int sum = 0; long fin ...

  7. 【C语言】程序员筑基功法——《函数栈帧的创建与销毁》

    <函数栈帧的创建与销毁> 文章目录 1. 前言 2. 问题引入 3. 前提准备 3.1 寄存器 3.2 汇编指令 4. 函数栈帧的维护 5. 如何调用堆栈 6. 函数栈帧的创建和销毁 6. ...

  8. c语言求abc大小时要怎么输入,C语言 有3个数a,b,c,要求按大小顺序把它们输出。,急!!!!!有三个数abc,要求按大小顺序输出. 请问用C语...

    导航:网站首页 > C语言 有3个数a,b,c,要求按大小顺序把它们输出.,急!!!!!有三个数abc,要求按大小顺序输出. 请问用C语 C语言 有3个数a,b,c,要求按大小顺序把它们输出., ...

  9. c语言 判断一个图是否全连通_C语言:程序运行流程图与顺序结构语句

    程序运行流程图 流程图是描述问题处理步骤的一种常用图形工具,它是由一些图框和流程线组成的.流程图描述问题的处理步骤,形象直观,便于阅读.画流程图时必须按照功能选用相应的流程图符号,常用的流程图符号如下 ...

最新文章

  1. 网易分布式数据库多活架构的演进与实践
  2. 错误:不允许有匹配 [xX][mM][lL] 的处理指令目标。
  3. hdoj_1047_大數加法 java 模擬
  4. 【Python刷题】_5
  5. 删除拼接id_轻流对接企业微信日程,实现日程创建/更改/删除
  6. Windows系统编程之进程间通信
  7. 页面传值的方法 和JSON与字符串和对象之间的转换
  8. redis学习笔记——(1)
  9. 算法--递归--走台阶问题(2种递归+递归改循环)
  10. 利用WindowsAPI创建窗体(c++)
  11. 如何自定义python语法.
  12. Gitee + Hexo 搭建个人博客
  13. android渠道占有率,硬核联盟分发量在安卓渠道占比高达64%,2019年将发力四大方向...
  14. pandas爬虫爬取网页表格
  15. 阿里云centOS 将不带www的域名301重定向到带www域名
  16. 如何成为名副其实的测试架构师?
  17. java实现随机点名器
  18. 任正非称“鸿蒙”适用于自动驾驶,而非手机!
  19. C语言---char *与const char *
  20. remote: HTTP Basic: Access denied的解决方法

热门文章

  1. Base64 编解码
  2. 安卓与HTML简单的交互使用
  3. [新思路]Online DVD Rental! 美国在线DVD租赁
  4. 元宇宙时代,技术长什么样
  5. 当Typora开始收费,开源免费的MarkText编辑器火了:一周新增2k+star
  6. 程序员千万不要做舔狗啊!
  7. 那个 CEO 写下 70 万行代码的公司,马上要上市了
  8. 拜托!这才是分布式系统CAP的正确打开方式!
  9. MethodInvokingJobDetailFactoryBean的并发问题
  10. 结构与算法(05):二叉树与多叉树