有一个运算程序a@b=n,可以使(a+c)@b=n+c,a@(b+c)=n-2c,如果1@1=2,则2010@2010=__过程要详细,可以加分。
展开全部
你是要C的程序还是什么的程序?
更多追问追答
追问
要解题的过程,每一步,@是个带圈的+号(⊕)
a⊕b=n,可以使(a+c)⊕b=n+c,a⊕(b+c)=n-2c,如果1⊕1=2,则2010⊕2010=?
追答
那个无所谓了。
你可以分析下这个题目的通项,可以发现求解2010⊕2010时,可以转化为(2009+1)⊕2010=2009⊕2010+1=2009⊕(2009+1)+1......以此类推。这样可以通过递归实现。
你也可以这样想,
知道了1⊕1,就可以知道2⊕1=1⊕1+1,3⊕1=2⊕1+1=1⊕1+1,也就是说当左边增加时表达式加1,由此得到2010⊕1,然后又可以得出2010⊕2的值,以此类推,最终得到2010⊕2010.这样可以通过迭代实现。
我用 的是迭代的方法,比较容易理解。
#include
using namespace std;
int calc(int a,int b);
int main()
{
printf("%d",calc(2010,2010));//要计算其他的值可以修改这两个数字
}
int calc(int a ,int b) //计算表达式a⊕b
{
int m=1;
while(a>0)//计算左边,通过a控制次数
{
m=m+1;
a--;
}
while(b>1)//计算右边,通过b控制次数
{
m=m-2;
b--;
}
return m;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询