C Code:
#include <stdio.h> #include <conio.h> int checkfreenum (int free,unsigned long num ); int findnum(); void main(){ findnum(); } int checkfreenum (int free,unsigned long num ){ int digit[20]; int n = 0; while(num % 10 > 0){ digit[n] = num % 10; if(digit [n ] == free) return 0; num /= 10; } return 1; } int findnum(){ unsigned long t = 0,f = 0; int j = 0; for(unsigned long i = 1; i <= 100000000; i++){ if(checkfreenum(9,i) == 1) t++; else f++; if((t != 0) && (t == f)){ ++j; if(j == 13) return 0; } } return 0; }
ฟังก์ชัน checkfreenum ยังทำงานไม่ถูกต้องครับ เพราะ ในกรณีที่ num หารด้วย 10 ลงตัว จะ return ค่า 1 กลับไปเสมอ ซึ่งไม่ถูกต้อง เช่น 90 ไม่ใช่ freenum แต่ฟังก์ชันนี้บอกว่าเป็น freenum
__________________
The difference between school and life?
In school, you're taught a lesson and then given a test.
In life, you're given a test that teaches you a lesson.
25 มีนาคม 2007 14:24 : ข้อความนี้ถูกแก้ไขแล้ว 1 ครั้ง, ครั้งล่าสุดโดยคุณ TOP
|