谁知道小蜜蜂那个c语言程序怎么写啊?

谁知道小蜜蜂那个c语言程序怎么写啊?,第1张

一只小蜜蜂在如下图所示的蜂窝上爬行。它爬行时,只能从一个格爬到相邻的大号格子中。例如,从 1 号格子可以爬到 2 号或者 3 号格子,从 2 号则可以爬到 3 号或者 4 号格子。

1 35 79 11 图片贴不上每个数字就是一个格子

246 81012

请问从一个格子 a 爬到一个格子 b 一共有多少种可行的路线。

#include <stdio.h>

void main( )

{

int i

double a,b,n,un1,un2,un

scanf("%lf %lf",&a,&b)

n=b-a+1

if(n==1)printf ("0\n")

un = un2 = 1

if(n==2)

un=1

for ( i=3i<=ni++)

{

un1 = un2

un2 = un

un = un1 + un2

}

printf ("%.0f\n",un)

}

是不是这个

#include"stdio.h"

#include"string.h"

main()

{

int c,d,i,n,k,up=0

char static a[30]={1},b[30]={2},road[30]={0}

scanf("%d %d",&c,&d)

n=d-c+1

if(n==2)

{

printf("1\n")

}

else

{

if(n==3)

{

printf("2\n")

}

else

{

for(i=2i<(n-1)i++)//非前两种情况的连加

{

for(k=0k<30k++)//每一位分别相加

{

road[k]=a[k]+b[k]+up

if(road[k]>9)//若相加大于九则进位

{

road[k]=road[k]%10

up=1

}

else up=0

}

strcpy(a,b)

strcpy(b,road)

}

for(i=29i--)

{

if(road[i]==0) continue//从后往前找到结果中从第几位开始不是零

else break

}

for(i>=0i--)//反序输出结果

printf("%d",road[i])

printf("\n") //这里应该用%d吧?

}

}

}

估计是 结果溢出,你把 变量 类型改成 无符号数 试试

如果不行 把结果定义成 double,最后输出时 以 %.0f 输出

如果还不行 用下面注释里面的代码。__int64是c++ 里面提供的变量类型(64位),表示数据范围要大很多,看你们 评测系统 支不支持了

再不行 就要用高精度了,就是用数组存放 最后结果,估计 就剩2个点不至于用到这个

#include "stdio.h"

/*main( )

{

__int64 a,b,n,i,un1,un2,un

scanf("%I64d %I64d",&a,&b)

n=b-a+1

if(n==1)

printf ("0\n")

un = un2 = 1

for ( i=3i<=ni++)

{

un1 = un2un2 = unun = un1 + un2

}

printf ("%I64d\n",un)

} */

main( )

{

unsigned long a,b,n,i,un1,un2,un

scanf("%u %u",&a,&b)

n=b-a+1

if(n==1)

printf ("0\n")

un = un2 = 1

for ( i=3i<=ni++)

{

un1 = un2un2 = unun = un1 + un2

}

printf ("%u\n",un)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8094178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存