救命
扣:
#include<bits/stdc++.h>
using namespace std;
long long int n;
int a[1000001]={0};
int b(long long int);
int main(){
ios::sync_with_stdio(0);cin.tie(0);
while(cin>>n){
cout<<b(n)<<endl;
}
}
int b(long long int n){
if(n<=1000000){
if(n==1||a[n]>0)return a[n];
else if(n%2==1){
a[n]=b((3*n+1)/2)+2;return a[n];
}
}
if(n%2==0){
int t=0,m=n;
while(m%2==0)t++,m/=2;
return b(m)+t;
}
else if(n%2==1)return b(n+(n+1)/2)+2;
}
救命
扣:
#include<bits/stdc++.h>
using namespace std;
long long int n;
int a[1000001]={0};
int b(long long int);
int main(){
ios::sync_with_stdio(0);cin.tie(0);
while(cin>>n){
cout<<b(n)<<endl;
}
}
int b(long long int n){
if(n<=1000000){
if(n==1||a[n]>0)return a[n];
else if(n%2==1){
a[n]=b((3*n+1)/2)+2;return a[n];
}
}
if(n%2==0){
int t=0,m=n;
while(m%2==0)t++,m/=2;
return b(m)+t;
}
else if(n%2==1)return b(n+(n+1)/2)+2;
}
我覺得會RE是你的這段
else if(n%2==1){
a[n]=b((3*n+1)/2)+2;return a[n];
}
如果n>1000000會爆
救命
扣:
#include<bits/stdc++.h>
using namespace std;
long long int n;
int a[1000001]={0};
int b(long long int);
int main(){
ios::sync_with_stdio(0);cin.tie(0);
while(cin>>n){
cout<<b(n)<<endl;
}
}
int b(long long int n){
if(n<=1000000){
if(n==1||a[n]>0)return a[n];
else if(n%2==1){
a[n]=b((3*n+1)/2)+2;return a[n];
}
}
if(n%2==0){
int t=0,m=n;
while(m%2==0)t++,m/=2;
return b(m)+t;
}
else if(n%2==1)return b(n+(n+1)/2)+2;
}
我覺得會RE是你的這段
else if(n%2==1){
a[n]=b((3*n+1)/2)+2;return a[n];
}
如果n>1000000會爆
我知道了 你把n設在全域變數
又放在遞迴裡 所以會RE
請忽視我剛剛的回覆 是我思慮不周 抱歉
救命
扣:
#include<bits/stdc++.h>
using namespace std;
long long int n;
int a[1000001]={0};
int b(long long int);
int main(){
ios::sync_with_stdio(0);cin.tie(0);
while(cin>>n){
cout<<b(n)<<endl;
}
}
int b(long long int n){
if(n<=1000000){
if(n==1||a[n]>0)return a[n];
else if(n%2==1){
a[n]=b((3*n+1)/2)+2;return a[n];
}
}
if(n%2==0){
int t=0,m=n;
while(m%2==0)t++,m/=2;
return b(m)+t;
}
else if(n%2==1)return b(n+(n+1)/2)+2;
}
我覺得會RE是你的這段
else if(n%2==1){
a[n]=b((3*n+1)/2)+2;return a[n];
}
如果n>1000000會爆
我知道了 你把n設在全域變數
又放在遞迴裡 所以會RE
請忽視我剛剛的回覆 是我思慮不周 抱歉
其實還有一點小地方 就是int 跟 long long的變換有一點問題