问题标题: 酷町堂:3478迷之函数

0
0
已解决
李泽远
李泽远
高级天翼
高级天翼

为什么我的代码运行不了?(请指出如何能通过编译,最好能AC)。注意,是改,而不是发整段代码!

#include<iostream>
using namespace std;

long long sum,n;
typedef long long ll;
ll f(ll a,ll b){
	if(a==b)
		return 0;
	if(a>b)
		return f(a-b,b+b)+1;
	return f(a+a,b-a)+1;
}

int main(){
    cin>>n;
    for(long long i=1;i<=n;i++)
		for(long long j=1;j<=n;j++)
			sum+=f(i,j);
	cout<<sum;
    return 0;
}

 

李泽远在2020-02-24 23:03:29追加了内容

3478迷之函数。

李泽远在2020-02-26 08:38:07追加了内容

该怎么写呀???

急!

我把typedef改成define倒是可以运行了,但数据超过1,他就崩溃。

题目中说的“现规定这个函数递归死循环时返回值为0”该怎么实现?

还有我的程序很容易超时啊!


0
已采纳
缪鲲鹏
缪鲲鹏
新手光能
新手光能

你这个很明显是进入死循环了 , 就比如i=1,j=2时,你自己手动模拟一下函数,会发现永远出不来 , 在这就卡住了 , 当然会出错

缪鲲鹏在2020-02-26 09:54:55追加了内容

这题在洛谷上是省选级别的题啊!(为什么在酷町堂难度才2)

传送去看,里面有你想要的

 

0
李泽远
李泽远
高级天翼
高级天翼

置顶!

有没有大佬来回答问题呀?

0
潘晨皓
潘晨皓
高级天翼
高级天翼

你第三行为什么是空的?

我要回答