c语言递归调用问题,有题目有答案,求解法,谢谢!

#include"stdio.h"constintu[3]={1,-3,2};constintv[2]={-2,3};intg(intn){inti,sum=0;for(... #include "stdio.h"
const int u[3]={1,-3,2};
const int v[2]={-2,3};
int g(int n)
{
int i,sum=0;
for(i=1;i<=n;i++)
sum+=u[i%3]*i;
return sum;
}
int main()
{
int n,i,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=v[i%2]*g(i);
printf("%d\n",sum);
return 0;

}
输入:103
输出:-400
我用笔算写了几十步也不能知道结果,我想肯定是有规律的,我有个同学就看出来了,只不过我不会,我自己又想了很久 还是算不出来,我想知道对这类题目(以这题为例)可以有什么样的方法用手算能算出来,当然不是写完所有步骤,那样要是输入几万那怎么算。就是想知道解答方法,谢谢
展开
 我来答
tanzhangwen
2012-09-01 · TA获得超过1136个赞
知道小有建树答主
回答量:499
采纳率:0%
帮助的人:853万
展开全部
不知道你想知道的解法是什么呢?
是把这个程序修改为递归调用程序还是解释这个程序或者什么要求
追问
我想知道如果不用电脑,怎么才能算出答案呢,可能是有规律或者有其他方法的,希望各位帮帮忙,谢谢
追答
你原来不是要研究算法 而是研究口算 也就是智力测试啊

这个一般两种方法解决:
1. 根据算法推算公式,将公式化简,然后代入参数快速得到结果
2. 打印出一部分数据,看是否存在规律

你这道题就可以按2来
当你打印了后会发现每隔6个是等差数列
103等差数列对应的起始为103%6=1 项数为17

1的结果为-9,等差为-23
结果为-23*17-9=-400
郝楠霆
2012-09-01
知道答主
回答量:15
采纳率:0%
帮助的人:5.2万
展开全部
额。。。几年前过的,现在都忘了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
15...4@qq.com
2012-09-01 · 超过17用户采纳过TA的回答
知道答主
回答量:229
采纳率:0%
帮助的人:62.5万
展开全部
而下面的函数与上面的数值不一样,可以尝试这把函数形式写成
int g(int n,int m)的形式,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式