列印從 到最大的n位數(考慮大數問題)

2021-06-22 19:58:40 字數 766 閱讀 4688

主要考慮大數問題。n一大很容易超過正數能表示的範圍,因此需要用字元陣列模擬。

先增加1,再列印。如下

[objc]view plain

copy

print

?"font-size: 18px;">#include .h>  

#include 

//溢位返回1,否則0

int add(char* number)  

}  else  

}  return overflow;  

}  //列印出這個數字,並忽略開頭的0

void print_a_number(char* number)  

printf("\t");  

}  void print_all(int n)  

free(number);  

}  void main()  

#include #include //溢位返回1,否則0

int add(char* number)

}else

}return overflow;

}//列印出這個數字,並忽略開頭的0

void print_a_number(char* number)

printf("\t");

}void print_all(int n)

free(number);

}void main()

參考劍指offer

列印1到最大的n位數

輸入數字n,按順序列印出1到最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的3位數即999。方法1 利用case語句使字元 char charplus char a if numchar len 0 判斷是否向高位移動,如果該為由9 0,則向高位移動 if flag numchar ...

列印1到最大的n位數

劍指offer用的是字串,還要苦逼的字串比較,看是否進製。直接用整型陣列來儲存。include include using namespace std 乙個int儲存幾位數 const int int num 2 每位數最大值,超過這個要進製 不包括最高位 const int int max 99 ...

列印1到最大的n位數

1.問題描述 輸入數字n,按順序列印出從1刀最大的n位數的十進位制數。比如輸入3,則列印出1,2,3一直到最大的3位數999.來自 劍指offer 2.分析 對於這個問題,我們需要考慮大數。因此我們在字串上模擬加法運算。3.ntakeover代表進製,isnotoverflow代表有沒有溢位 是不是...