鱼C论坛

 找回密码
 立即注册
查看: 4804|回复: 5

求助!!!!!!!!!!

[复制链接]
发表于 2013-9-14 16:12:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 C语言鱼c 于 2013-9-14 16:14 编辑

复制代码
求助小甲鱼在C语言入门的22个视频中讲到的。

原题目是:求fibonacci数列的前四十个数,这数列的特点如下:第一第二两个数为1,1。从第三个数开始,该数是前两数之和。

小甲鱼把题目改成     输入一个数,就打印第几个数,是其他数就报错。





大家帮帮


  1. #include <stdio.h>

  2. void main()
  3. {
  4.                 long f1, f2;
  5.                 int i, j;

  6.         printf("输入第几个数:");
  7.                 scanf("%d", &i);
  8.                
  9.                 if(i<0 && i>10000)
  10.                 {
  11.                                
  12.                         printf("输入的数要在1~10000之间");
  13.             
  14.                 }
  15.         

  16.                 for( j=1; j<=i; j++)
  17.                 {
  18.                                 if (j == i)
  19.                                 {
  20.                                         printf("%12ld%12ld",f1,f2);       
  21.                                 }
  22.                         
  23.                                 f1 = f1+f2;
  24.                                 f2 = f2+f1;
  25.                                
  26.                 }
  27. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-9-14 16:46:16 | 显示全部楼层
1:没有加上防护(题目没要求)
2:我是用VC++6.0写的所以我限制最多输出45个数字已经接近极限了 我不知道 10000 你是怎么想的 你知道第10000个数字有多大吗
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int n;
  5.         unsigned long int f1, f2, f3, i;
  6. s:        f1 = 1;
  7.         f2 = 1;
  8.         f3 = 1;
  9.         printf("输入要打印第几个数:");
  10.         setbuf(stdin,NULL);
  11.         scanf("%d",&n);
  12.         if(n <= 0 || n>45)
  13.         {
  14.                 printf("输入的数字要在1~1000之间,请重新输入!");
  15.                 goto s;
  16.         }
  17.         for(i = 1;i <= n;++i)
  18.         {
  19.                 if(i>2)
  20.                 {
  21.                         f3 = f1 + f2;
  22.                         f1 = f2;
  23.                         f2 = f3;
  24.                 }
  25.                 printf("%-16lu",f3);
  26.         }
  27.         printf("\n");
  28.         return 0;
  29. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-9-14 16:51:57 | 显示全部楼层
第10000数字是
54438373113565281338734260993750380135389184554695967026247715841208582865622349017083051547938960541173822675978026317384359584751116241439174702642959169925586334117906063048089793531476108466259072759367899150677960088306597966641965824937721800381441158841042480997984696487375337180028163763317781927941101369262750979509800713596718023814710669912644214775254478587674568963808002962265133111359929762726679441400101575800043510777465935805362502461707918059226414679005690752321895868142367849593880756423483754386342639635970733756260098962462668746112041739819404875062443709868654315626847186195620146126642232711815040367018825205314845875817193533529827837800351902529239517836689467661917953884712441028463935449484614450778762529520961887597272889220768537396475869543159172434537193611263743926337313005896167248051737986306368115003088396749587102619524631352447499505204198305187168321623283859794627245919771454628218399695789223798912199431775469705216131081096559950638297261253848242007897109054754028438149611930465061866170122983288964352733750792786069444761853525144421077928045979904561298129423809156055033032338919609162236698759922782923191896688017718575555520994653320128446502371153715141749290913104897203455577507196645425232862022019506091483585223882711016708433051169942115775151255510251655931888164048344129557038825477521111577395780115868397072602565614824956460538700280331311861485399805397031555727529693399586079850381581446276433858828529535803424850845426446471681531001533180479567436396815653326152509571127480411928196022148849148284389124178520174507305538928717857923509417743383331506898239354421988805429332440371194867215543576548565499134519271098919802665184564927827827212957649240235507595558205647569365394873317659000206373126570643509709482649710038733517477713403319028105575667931789470024118803094604034362953471997461392274791549730356412633074230824051999996101549784667340458326852960388301120765629245998136251652347093963049734046445106365304163630823669242257761468288461791843224793434406079917883360676846711185597501
你打算 怎么弄啊 ???  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-14 21:08:10 | 显示全部楼层

还没有学额
1.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-14 21:11:05 | 显示全部楼层
牡丹花下死做鬼 发表于 2013-9-14 16:46
1:没有加上防护(题目没要求)
2:我是用VC++6.0写的所以我限制最多输出45个数字已经接近极限了 我不知道 1 ...

2.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-14 21:18:23 | 显示全部楼层
牡丹花下死做鬼 发表于 2013-9-14 16:51
第10000数字是
5443837311356528133873426099375038013538918455469596702624771584120858286562234901708 ...
  1. #include <stdio.h>

  2. void main()
  3. {
  4.                 long f1, f2;
  5.                 int i, j, n;

  6.         printf("输入第几个数:");
  7.                 scanf("%d", &n);
  8.                 n == i;
  9.                
  10.                 if(i<0 && i>45)
  11.                 {
  12.                                
  13.                         printf("输入的数要在1~45之间");
  14.             
  15.                 }
  16.         

  17.                 for( j=1; j<=i; j++)
  18.                 {
  19.                                 if (j == i)
  20.                                 {
  21.                                         printf("%12ld%12ld",f1,f2);       
  22.                                 }
  23.                         
  24.                                 f1 = f1+f2;
  25.                                 f2 = f2+f1;
  26.                                
  27.                 }
  28. }
复制代码
能不能就这些,帮我改一改。谢谢!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-3 23:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表