剑指offer:打印1到最大的n位数
来源:互联网 发布:php foreach遍历数组 编辑:程序博客网 时间:2024/05/21 19:29
题目:输入数字n,按顺序打印出从1到n位十进制数,比如输入3,则打印出1、2、3一直到最大的3位数999
要求:
1、实现大整数的输入,例如输入的数超过了int、long的表示范围,应该采用大整数
2、特殊的输入,0、-1
C语言中大整数的的运算,使用字符串来实现的,本题的关键在于,从0开始,没有加1,然后输入对应位的最大数,然后继续加1,知道相加的数等于输入的数n为止。
下面是本程序的源码:
#include<stdio.h>#include<string.h>#define MAX 100char *reverse(char *s);char *add_one(char *s);void print_MaxNum(char *s){ int length=strlen(s); char result[MAX]={0}; char str[MAX]="0"; printf("\n"); while(strcmp(s,add_one(str))!=0) { strcat(result,"9"); printf("%s\t位的最大值为:\t%s\n",str,result); } strcat(result,"9"); printf("%s\t位的最大值为:\t%s\n",str,result);}char *add_one(char *s){ char *str=reverse(s); int length=strlen(str); int cf=0,i=0,tmp; while(i<length) { if(i==0)tmp=cf+(str[i]-'0')+1; else tmp=cf+(str[i]-'0'); if(tmp>=10) { str[i]=(tmp-10)+'0'; cf=1; } else { str[i]=tmp+'0'; cf=0; } ++i; } if(cf==1)str[length]='1'; s=reverse(str); return s;}char *reverse(char *s){ int length=strlen(s); int i=0,j=length-1; char tmp; while(i<j) { tmp=s[i]; s[i]=s[j]; s[j]=tmp; ++i; --j; } return s;}int main(){ printf("请输入一个数字字符串:\n"); char digit[MAX]={0}; scanf("%s",digit); if(digit!=NULL) { if(digit[0]=='-') { printf("\n你输入的字符串(为负)有误!\n"); exit(0); } if(digit[0]=='0') { printf("\n你输入的字符串(为0)没有最大值!\n"); exit(0); } } //print_MaxNum(digit); //printf("\n%s\n%s",add_one(digit)); print_MaxNum(digit); return 0;}
下面是运行结果的截图:
C语言中大整数的运算是比较重要的,至少大家要知道怎么去求,也可以自己写一下代码,练练手。
0 0
- 剑指Offer之打印1到最大的N位数
- 剑指offer:打印1到最大的n位数
- 【剑指offer】打印1到最大的n位数
- [剑指Offer]打印1到最大的n位数
- 【剑指offer】打印1到最大的n位数
- 剑指Offer之打印1到最大的n位数
- 剑指Offer之 - 打印1到最大的n位数
- 剑指offer-12 打印1到最大的N位数
- 剑指offer 12 -打印1到最大的n位数
- 剑指offer:打印1到最大的n位数
- 剑指Offer-12-打印1到最大的n位数
- [剑指offer-1515]打印1到最大的N位数
- 剑指offer 打印1到最大的N位数
- 剑指Offer--012-打印1到最大的N位数
- 剑指Offer 打印1到最大的n位数
- 剑指Offer:打印1到最大的N位数
- 《剑指offer》:[16]打印1到最大的N位数
- 【剑指offer】打印1到最大的n位数
- Mysql 导入、导出数据命令
- 了解 Quick-Cocos2d-X 的核心
- Java Reflection 機制, 以 DisplayManager 為例
- 创建 JavaScript 对象
- windows 64位 mysql-5.6.11-winx64.zip安装
- 剑指offer:打印1到最大的n位数
- 在main()之前,IAR都做了啥?
- java对cookie的操作
- Lua查找表元素过程(元表、__index方法是如何工作的)
- asp.net中实现文件下载功能
- MongoDB常用的操作命令 不指定
- wireless_tool配置网络
- Java类的基本运行顺序
- MYSQL IFNULL函数的使用