2 qq 40173922 qq_40173922 于 2017.09.09 23:12 提问

关于递归函数的C语言描述

Weiss的数据结构,一个递归函数F(0)=0;F(x)=2F(x-1)+x^2;
书上的伪码是
int
F(int x)
{
if(x==0)
return 0;
else
return 2*F(x-1)+x^2
}
我的思路就是这么写,加个getchar(),但是int f(int x),但是VS2013说LNK1120,
我百度了一下说缺少lib,但是我并不知道如何加,请问一下到底该怎么写。请大神给我
一点点提示。

5个回答

kingslave1
kingslave1   2017.09.10 19:31
 #include<stdio.h>
int F(int m);
int main()
{
    int a;
    //a = getchar();
    scanf("%d",&a);
    int b;
    b=F(a);
    printf("%d\n",b);
}
int F(int x)
{
    if (x == 0)
        return (0);
        else
            //return 2 * F(x - 1) + x^2;//x^2这一表达式在c语言中表示x与2做异或运算,x*x才是指的x的平方
            return 2 * F(x - 1) + x*x;
}

caozhy
caozhy   Ds   Rxr 2017.09.10 08:45
 你要先定义后使用
int F(int x);
int F(int x)
{
if(x==0)
return 0;
else
return 2*F(x-1)+x^2;
}
qq_31618659
qq_31618659   2017.09.10 13:32

你要确定你的main函数在函数的什么位置 这个不是你函数库的问题 如果你的main函数在你的功能函数上 你就要在头先给函数一个定义就跟一楼一样
如果你的main函数在功能函数下那么你还是把源码发出来具体分析一下

qq_40173922
qq_40173922 麻烦帮我看看我程序哪里错了,可以运行但是结果不对...代码贴出来了
2 个月之前 回复
qq_40173922
qq_40173922   2017.09.10 18:02

我按照提示先定义了函数,可是结果与我想要的不一样

 #include "stdafx.h"
int F(int m);
int main()
{
    int a;
    a = getchar();
    int b;
    b=F(a);
     printf("%d\n");
}
int F(int x)
{
    if (x == 0)
        return (0);
        else
            return 2 * F(x - 1) + x ^ 2;
    }
`
!
[结果和我现象的不一样](http://img.ask.csdn.net/upload/201709/10/1505037669_891381.png)
麻烦帮我看看哪里出问题了
谢谢

kingslave1
kingslave1   2017.09.10 08:35

楼主可以把源代码贴出来吗?

kingslave1
kingslave1 C语言是非常基础的语言,学好这个再学其他的就完全没有压力了,所以一定要扎实点
2 个月之前 回复
qq_40173922
qq_40173922 回复breezefaith: 真的十分感谢,一下子学到了很多东西
2 个月之前 回复
qq_40173922
qq_40173922 回复breezefaith: 应该最开始是那个x平方,以前平方都这么打的,所以出过好多错,谢谢啦
2 个月之前 回复
kingslave1
kingslave1 回复小松鼠呀: 再次,getchar()函数是输入一个字符,也就是说你加入你输入的是0,那么a被赋值为48(字符'0'的ascii码)而不是整数0,所以如果你是想输入数字的话还应该把a=getchar()改成scanf("%d",&a);
2 个月之前 回复
kingslave1
kingslave1 回复小松鼠呀: 其次,printf("%d\n")这句是不是应该是printf("%d\n",b);
2 个月之前 回复
kingslave1
kingslave1 回复小松鼠呀: 递归函数F(0)=0;F(x)=2F(x-1)+x^2;中 x^2你确定是表示的异或运算吗?还是表示的x的平方即x*x?如果表示的x的平方的话代码里应该是用x*x而不是x^2。
2 个月之前 回复
qq_40173922
qq_40173922 在上面了。可以运行,可是结果不对。。。
2 个月之前 回复
qq_40173922
qq_40173922 等我一会按照一楼朋友的提示再试一试,如果还不对的话我就把代码贴出了。因为但是写的不会所以就删了 :)
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片