朋友参加考试,遇到一个题目,貌似逻辑题。
一本书出现6的次数是256次,这本书共有多少页?
写了个小程序,试算一下,结果如下:
#include <stdio.h>
int func(int m,int n);
int main(int argc,char* argv[])
{
int result;
result = func(6,256);
printf("\n*******************");
printf("\nresult = %d\n",result);
printf("*******************\n");
return 0;
}
int func(int m, int n)
{
int i,j,k,t; k = 0; t=0; for (i=1;;i++) { j=i; while(j) { if(j%10 == m) { k++; printf(" %d",i); t++; /*这几句可以不要*/ if (t==10) /*完全是为了显示看起来方便*/ { printf("\n");
/*而设置的语句*/
t=0;
/*完全可以删掉*/
} } if(k==n) return i; j /= 10;
}
}
}
|
输出的结果如下:
diga@diga-desktop:~/test$ ./a.out ① 6 16 26 36 46 56 60 61 62 63
64 65 66 66 67 68 69
② 76 86 96
106 116 126 136 146 156 160 161 162 163 164 165 166 166 167 168 169
☂176 186 196
206 216 226 236 246 256 260 261 262 263 264 265 266 266 267 268 269
276 286 296
306 316 326 336 346 356 360 361 362 363
364 365 366 366 367 368 369
④376 386 396 406 416 426 436 446 456 460 461 462 463 464 465 466 466 467 468 469
⑤476 486 496
506 516 526 536 546 556 560 561 562 563
564 565 566 566 567 568 569
⑥576 586 596
⑦600 601 602 603 604 605 606 606 607 608 609 610 611 612 613 614 615 616 616 617
618 619 620 621 622 623 624 625 626 626
627 628 629 630 631 632 633 634 635 636
636 637 638 639 640 641 642 643 644 645
646 646 647 648 649 650 651 652 653 654
655 656 656 657 658 659 660 660 661 661
662 662 663 663 664 664 665 665 666 666
666 667 667 668 668 669 669 670 671 672
673 674 675 676 676 677 678 679 680 681
682 683 684 685 686 686 687 688 689 690
691 692 693 694 695 696 696 697 698 699
706 716 726 736 746 756 760 761 762 763
764 765 766 766 767 768
*******************
result = 768
*******************
|
上面显示的结果我稍做了调整,这样显示的有点规律。
前面6行都有规律,可以算出有多少页,从第七行开始进入600页后,每一页都有6这个数字。
可以笔算出这本书到底有多少页。
但是朋友说选项里页数的最大值就是316好像,记不清了。
写到这里我突然想起来了,一本书有多少页,每一页有两面,两面都有页码,
那么768/2=384是正确答案?
请大家指点。
阅读(1217) | 评论(0) | 转发(0) |