面试题12:打印1到最大的n位数

题目:输入数字n,按顺序打印出从1最大的n位十进制数。例如输入3,则打印出1,2,3,....,一直到最大的3位数即999

陷阱:考虑大数问题,就是输入的数字非常大的情况,如100,怎么表示100位的数呢。用字符串保存

细节问题

1,字符串递增的溢出判断

2,打印时过滤0

源代码

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
bool Increase(char* num)
{
	bool isOverFlow=true;
	int len=strlen(num);
	int takeover=0;
	for(int i=0;i<len;i++)
	{
		int a=num[i]-'0'+takeover;
		if(i==0)
			a=a+1;
		if(a>=10)
		{
			if(i==len-1)
			{
				isOverFlow=false;
			}
			else
			{
				a=a-10;
				takeover=1;
				num[i]='0'+a;
			}
		}
		else
		{
			num[i]='0'+a;
			break;
		}
	}
	return isOverFlow;
}
void Print(char *p)
{
	int len=strlen(p);
	int i=len-1;
	while(p[i]=='0')
	{
		i--;
	}
	for(;i>=0;i--)
	{
		printf("%c",p[i]);

	}
}
void test(int &n)
{
	n++;
}
void main()
{
	int n;
	printf("输入n:");
	scanf("%d",&n);
	char *p;
	p=(char *)malloc((n+1)*sizeof(char));
	memset(p,'0',n);
	
	p[n]='\0';
	printf("\n%s",p);
	printf("长度:%d\n",strlen(p));
	while(Increase(p))
	{
		Print(p);
		printf("\t");
	}
}


结果
输入2:

输入n:2

00长度:2
1       2       3       4       5       6       7       8       9       10
11      12      13      14      15      16      17      18      19      20
21      22      23      24      25      26      27      28      29      30
31      32      33      34      35      36      37      38      39      40
41      42      43      44      45      46      47      48      49      50
51      52      53      54      55      56      57      58      59      60
61      62      63      64      65      66      67      68      69      70
71      72      73      74      75      76      77      78      79      80
81      82      83      84      85      86      87      88      89      90
91      92      93      94      95      96      97      98      99      
输入3:

输入n:3

000长度:3
1       2       3       4       5       6       7       8       9       10
11      12      13      14      15      16      17      18      19      20
21      22      23      24      25      26      27      28      29      30
31      32      33      34      35      36      37      38      39      40
41      42      43      44      45      46      47      48      49      50
51      52      53      54      55      56      57      58      59      60
61      62      63      64      65      66      67      68      69      70
71      72      73      74      75      76      77      78      79      80
81      82      83      84      85      86      87      88      89      90
91      92      93      94      95      96      97      98      99      100
101     102     103     104     105     106     107     108     109     110
111     112     113     114     115     116     117     118     119     120
121     122     123     124     125     126     127     128     129     130
131     132     133     134     135     136     137     138     139     140
141     142     143     144     145     146     147     148     149     150
151     152     153     154     155     156     157     158     159     160
161     162     163     164     165     166     167     168     169     170
171     172     173     174     175     176     177     178     179     180
181     182     183     184     185     186     187     188     189     190
191     192     193     194     195     196     197     198     199     200
201     202     203     204     205     206     207     208     209     210
211     212     213     214     215     216     217     218     219     220
221     222     223     224     225     226     227     228     229     230
231     232     233     234     235     236     237     238     239     240
241     242     243     244     245     246     247     248     249     250
251     252     253     254     255     256     257     258     259     260
261     262     263     264     265     266     267     268     269     270
271     272     273     274     275     276     277     278     279     280
281     282     283     284     285     286     287     288     289     290
291     292     293     294     295     296     297     298     299     300
301     302     303     304     305     306     307     308     309     310
311     312     313     314     315     316     317     318     319     320
321     322     323     324     325     326     327     328     329     330
331     332     333     334     335     336     337     338     339     340
341     342     343     344     345     346     347     348     349     350
351     352     353     354     355     356     357     358     359     360
361     362     363     364     365     366     367     368     369     370
371     372     373     374     375     376     377     378     379     380
381     382     383     384     385     386     387     388     389     390
391     392     393     394     395     396     397     398     399     400
401     402     403     404     405     406     407     408     409     410
411     412     413     414     415     416     417     418     419     420
421     422     423     424     425     426     427     428     429     430
431     432     433     434     435     436     437     438     439     440
441     442     443     444     445     446     447     448     449     450
451     452     453     454     455     456     457     458     459     460
461     462     463     464     465     466     467     468     469     470
471     472     473     474     475     476     477     478     479     480
481     482     483     484     485     486     487     488     489     490
491     492     493     494     495     496     497     498     499     500
501     502     503     504     505     506     507     508     509     510
511     512     513     514     515     516     517     518     519     520
521     522     523     524     525     526     527     528     529     530
531     532     533     534     535     536     537     538     539     540
541     542     543     544     545     546     547     548     549     550
551     552     553     554     555     556     557     558     559     560
561     562     563     564     565     566     567     568     569     570
571     572     573     574     575     576     577     578     579     580
581     582     583     584     585     586     587     588     589     590
591     592     593     594     595     596     597     598     599     600
601     602     603     604     605     606     607     608     609     610
611     612     613     614     615     616     617     618     619     620
621     622     623     624     625     626     627     628     629     630
631     632     633     634     635     636     637     638     639     640
641     642     643     644     645     646     647     648     649     650
651     652     653     654     655     656     657     658     659     660
661     662     663     664     665     666     667     668     669     670
671     672     673     674     675     676     677     678     679     680
681     682     683     684     685     686     687     688     689     690
691     692     693     694     695     696     697     698     699     700
701     702     703     704     705     706     707     708     709     710
711     712     713     714     715     716     717     718     719     720
721     722     723     724     725     726     727     728     729     730
731     732     733     734     735     736     737     738     739     740
741     742     743     744     745     746     747     748     749     750
751     752     753     754     755     756     757     758     759     760
761     762     763     764     765     766     767     768     769     770
771     772     773     774     775     776     777     778     779     780
781     782     783     784     785     786     787     788     789     790
791     792     793     794     795     796     797     798     799     800
801     802     803     804     805     806     807     808     809     810
811     812     813     814     815     816     817     818     819     820
821     822     823     824     825     826     827     828     829     830
831     832     833     834     835     836     837     838     839     840
841     842     843     844     845     846     847     848     849     850
851     852     853     854     855     856     857     858     859     860
861     862     863     864     865     866     867     868     869     870
871     872     873     874     875     876     877     878     879     880
881     882     883     884     885     886     887     888     889     890
891     892     893     894     895     896     897     898     899     900
901     902     903     904     905     906     907     908     909     910
911     912     913     914     915     916     917     918     919     920
921     922     923     924     925     926     927     928     929     930
931     932     933     934     935     936     937     938     939     940
941     942     943     944     945     946     947     948     949     950
951     952     953     954     955     956     957     958     959     960
961     962     963     964     965     966     967     968     969     970
971     972     973     974     975     976     977     978     979     980
981     982     983     984     985     986     987     988     989     990
991     992     993     994     995     996     997     998     999     




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值