ดูหนึ่งข้อความ
  #23  
Old 27 ตุลาคม 2006, 20:12
TOP's Avatar
TOP TOP ไม่อยู่ในระบบ
ผู้พิทักษ์กฎขั้นสูง
 
วันที่สมัครสมาชิก: 27 มีนาคม 2001
ข้อความ: 1,003
TOP is on a distinguished road
Post

C Code:
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. int checkfreenum(int free,unsigned long num);
  5.  
  6. int findnum();
  7.  
  8. void main(){
  9.     findnum();
  10. }
  11.  
  12. int checkfreenum(int free,unsigned long num){
  13.     int digit[20];
  14.     int n = 0;
  15.     while(num % 10 > 0){
  16.         digit[n] = num % 10;
  17.         if(digit[n] == free) return 0;
  18.         num /= 10;
  19.     }
  20.     return 1;
  21. }
  22.  
  23. int findnum(){
  24.     unsigned long t = 0,f = 0;
  25.     int j = 0;
  26.     for(unsigned long i = 1; i <= 100000000; i++){
  27.         if(checkfreenum(9,i) == 1) t++;
  28.         else f++;
  29.         if((t != 0) && (t == f)){
  30.             ++j;
  31.             printf("%u\n",i);
  32.             if(j == 13) return 0;
  33.         }
  34.     }
  35.     printf("%u %u\n",t,f);
  36.     return 0;
  37. }

ฟังก์ชัน 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
ตอบพร้อมอ้างอิงข้อความนี้