注意是否溢出
//字符串 /*#include <stdio.h> #include <stdlib.h> #include <string.h> int add(char str[],int len) { int is_overflow = 0; int is_add = 0; int i = 0; for (i = len - 1; i >= 0; i--) { if (i == len - 1) { str[i]++; if((len==1)&&(str[0]== 10)) { is_overflow = 1; break; } else if (str[i] == 10) { str[i] = 0; is_add = 1; } } else if (i == 0) { if (str[i] + is_add == 10) { is_overflow = 1; break; } else str[i]+=is_add; } else { if (str[i] + is_add == 10) { str[i] = 0; is_add = 1; } else { str[i] += is_add; break; } } } return is_overflow; } void print(char str[], int len) { int i = 0; int flag = 1; for (i = 0; i < len; ++i) { if (flag&&(str[i] == 0)) { continue; } else flag = 0; if (flag == 0) printf("%d", str[i]); } printf("\n"); } int main() { char arr[1]; int len = sizeof(arr) / sizeof(arr[0]); memset(arr, 0, len); while (!add(arr, len)) { print(arr, len); } system("pause"); return 0; } */ //递归 /*#include <stdio.h> #include <stdlib.h> #include <string.h> void print(char str[], int len) { int i = 0; int flag = 1; for (i = 0; i < len; ++i) { if (flag&&(str[i] == 0)) { continue; } else flag = 0; if (flag == 0) printf("%d", str[i]); } printf("\n"); } void add(char str[],int len,int index) { int i=0; if(index==len) { print(str,len); return; } for(i=0; i<10; i++) { str[index]=i; add(str, len, index+1); } } int main() { char arr[2]; int len = sizeof(arr) / sizeof(arr[0]); memset(arr, 0, len); add(arr,len,0); //system("pause"); return 0; }*/
时间: 2024-10-12 04:31:55