任给十进制整数,请从低位到高位……
生活随笔
收集整理的这篇文章主要介绍了
任给十进制整数,请从低位到高位……
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
其实这个题目本质上就是将输入的字符串或者字符数组逆序输出,也是我比较喜欢用的办法,可以解决大部分类似的问题。但为了学习到算法的多种可能性,下面用三种方法来对这个问题进行求解:
文章目录
- 字符数组逆序输出
- 递归法
- 循环法
字符数组逆序输出
#include<stdio.h> #define N 65535 int main() {char ch;char str[N];int cnt=0;//输入ch=getchar();for(int i=0;ch!='\n';i++){str[i]=ch;cnt++;ch=getchar();}//输出for(int k=cnt-1;k>=0;k--){printf("%c ",str[k]);}return 0; }递归法
#include<stdio.h> int f(int n); int main() {int n;scanf("%d",&n);f(n);return 0; } int f(int n){if(n<10){printf("%d\n",n);}else{printf("%d",n%10);f(n/10);} }循环法
#include<stdio.h> int main() {int n;scanf("%d",&n);while(n>=10){printf("%d ",n%10);n/=10;}printf("%d\n",n);return 0; }
经运行截图判断,在时间复杂度上:
O(递归法)>O(字符数组逆序输出)>O(循环法)
总结
以上是生活随笔为你收集整理的任给十进制整数,请从低位到高位……的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: realme 音频产品销量超 2000
- 下一篇: 课程设计完成之后要考虑的问题