כלומר 900,0000,000 + 80,000,000 + 7,000,000 + 600,000 + 50,000 + 4,000 + 300 + 20אבל צודק, אני רואה עכשיו שהיה באג שגרם לחזור על אפסים פעמיים.
הקוד נראה ככה:
#include <iostream>FILE *file = fopen("out.txt", "w"); void CalcRec(char arr, int loc, int max) { if (loc > max) return; for (int i=0; i<10; ++i) { arr = '0'+i; fprintf(file, "%s\n", arr); CalcRec(arr, loc+1, max); } } int main() { char arr = {0}; for (int i=0; i<8; ++i) { std::cout << (i+1) << " digit" << (i>0 ? "s" : "") << std::endl; CalcRec(arr, 0, i); } fflush(file); fclose(file); return 0; }
|
במקום ככה (לא באמת וידאתי את הפלט לפני)
#include <iostream>FILE *file = fopen("out.txt", "w"); void CalcRec(char arr, int loc, int max) { if (loc > max) return; for (int i=0; i<10; ++i) { arr = '0'+i; CalcRec(arr, loc+1, max); fprintf(file, "%s\n", arr); } } int main() { char arr = {0}; for (int i=0; i<8; ++i) { std::cout << (i+1) << " digit" << (i>0 ? "s" : "") << std::endl; CalcRec(arr, 0, i); } fflush(file); fclose(file); return 0; }
|
הינה הקובץ המתוקן:
בברכה,
עידן