| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 627 人关注过本帖
标题:一道数组相关问题
只看楼主 加入收藏
xiongshoot
Rank: 2
等 级:论坛游民
帖 子:4
专家分:21
注 册:2015-11-10
收藏
得分:5 
#include<stdio.h>
unsigned long f(int n)
{   
    unsigned long k;
    if(n==0) k=0;
    else if(n==1) k=1;
    else if(n==2) k=2;
    else
        k=2*f(n-1)+f(n-2)*f(n-3);
        return k;
}
int main()
{   
    int n;
    unsigned long y;
    printf("INPUT n(2<=n<=13):");
    scanf("%d",&n);
    printf("\n");
    y=f(n);
    printf("f(%d)=%d\n",n,y);
    return 0;
}
才疏,12和13有溢出,处理不了,编译器不一样,int的字节也不一样,参考3楼
2015-11-10 18:34
白金伯爵
Rank: 2
等 级:论坛游民
帖 子:47
专家分:48
注 册:2015-9-21
收藏
得分:0 
程序代码:
//网络问题,递推数列求值
#include<stdio.h>
int main(void)
{
    int i,n;
    double f[15];
    f[0]=0,f[1]=1;f[2]=2;
    printf("请输入你的数值n(2~13):");
    scanf("%d",&n);
    if(n<2||n>13)
        {
            printf("请重新输入你的数值n!")    ;
            scanf("%d",&n);
        }
    for(i=2;i<=13;i++)
    {
        f[i+1]=2*f[i]+f[i-1]*f[i-2];    
    }
    printf("数列中对应值为:%f。\n",f[n]);
    return 0;    
}

/*#include<stdio.h>
int main(void)
{
    int i;
    double f[15];
    f[0]=0,f[1]=1,f[2]=2;
    for(i=2;i<=13;i++)
    {
        f[i+1]=2*f[i]+f[i-1]*f[i-2];    
    }
    printf("f[0]=0\n");
    printf("f[1]=1\n");
    for(i=2;i<=13;i++)
        printf("f[%d]=%f\n",i,f[i]);
    return 0;    
}*/

这是我编的代码,有一个问题就是如果两次重复输入错误数值(即n<2||n>13)程序输出为0,请指教!
2015-11-11 11:02
快速回复:一道数组相关问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039920 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved