標籤:

列印1到最大的n位數

列印1到最大的n位數

輸入數字n,按順序列印出從1到最大的n位十進位數。

思路:

1.把字元串的每一個數字都初始化為字元0

2.為字元串表示的數字加1

3.列印字元串表示的數字

參考代碼:

#include <stdio.h>#include <stdlib.h>#include <string.h>int inc(char* num){ int isOver = 0; int jin = 0; int len = strlen(num); for(int i = len - 1;i >= 0;i--) { int n = num[i] - 0 + jin; if(i == len -1) n++; if(n >= 10) { if(i == 0) isOver = 1; else { n -= 10; jin = 1; num[i] = 0 + n; } } else { num[i] = 0 + n; break; } } return isOver;}void coutN(char* num){ int start0 = 1; int len = strlen(num); for(int i = 0;i < len;i++) { if(start0 && num[i] != 0) start0 = 0; if(!start0) { printf("%c",num[i]); } } printf(" ");}void cout1ToN(int n){ if(n < 0) return; char* num = malloc((n + 1)*sizeof(char)); memset(num,0,(n + 1)*sizeof(char)); num[n] = ; while(!inc(num)) { coutN(num); } free(num);}int main(){ int n = 4; cout1ToN(n); return 0;}

推薦閱讀:

最高分是多少
二叉樹的鏡像
樹的子結構
反轉鏈表
刪除鏈表的節點

TAG:演算法 | 筆試 |