#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n,num=0,m=0,a,b,t;
while(cin>>a>>b)
{
num=0;
cout<<a<<" "<<b;
if(a>b)
{
t=b;
b=a;
a=t;
}
for(int i=a;i<=b;i++)
{
m=0;
n=i;
while(n!=1)
{
//cout<<i<<endl;
m++;
n=(n%2==1)?3*n+1:n/2;
}
//cout<<n<<endl;
m++;
if(m>num) num=m;
}
printf(" %lld\n",num);
}
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n,num=0,m=0,a,b,t;
while(cin>>a>>b)
{
num=0;
cout<<a<<" "<<b;
if(a>b)
{
t=b;
b=a;
a=t;
}
for(int i=a;i<=b;i++)
{
m=0;
n=i;
while(n!=1)
{
//cout<<i<<endl;
m++;
n=(n%2==1)?3*n+1:n/2;
}
//cout<<n<<endl;
m++;
if(m>num) num=m;
}
printf(" %lld\n",num);
}
}
所有數字應該是int就夠了吧
還有試試看用位元運算加快速度
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv){
int a,b,d,e,f;
ios::sync_with_stdio(false);<----------
cin.tie(0);<-------------------------------我加了卻沒加速,還增加記憶體
while(cin>>a>>b){
cout<<a<<' '<<b<<' ';
if(a>b){
f=a;
a=b;
b=f;
}
f=0;
for(int c=a;c<=b;c++){
e=0;
d=c;
while(d!=1){
if(d%2==1)
d=3*d+1;
else
d=d/2;
e++;
}
if(e>f)
f=e;
}
cout<<f+1<<'\n';
}
}
我因為不知道a可能比b大,而吃了一次WA
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv){
int a,b,d,e,f;
ios::sync_with_stdio(false);<----------
cin.tie(0);<-------------------------------我加了卻沒加速,還增加記憶體
while(cin>>a>>b){
cout<<a<<' '<<b<<' ';
if(a>b){
f=a;
a=b;
b=f;
}
f=0;
for(int c=a;c<=b;c++){
e=0;
d=c;
while(d!=1){
if(d%2==1)
d=3*d+1;
else
d=d/2;
e++;
}
if(e>f)
f=e;
}
cout<<f+1<<'\n';
}
}
我因為不知道a可能比b大,而吃了一次WA
這題測資不大
,加:
ios::sync_with_stdio(false);
cin.tie(0);
的作用不大,而且多使用這些函數會增加些許記憶體用量
建議測資大小超過5MB時再加
這題要加速可以使用位元運算,或是解題報告的方法
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv){
int a,b,d,e,f;
ios::sync_with_stdio(false);<----------
cin.tie(0);<-------------------------------我加了卻沒加速,還增加記憶體
while(cin>>a>>b){
cout<<a<<' '<<b<<' ';
if(a>b){
f=a;
a=b;
b=f;
}
f=0;
for(int c=a;c<=b;c++){
e=0;
d=c;
while(d!=1){
if(d%2==1)
d=3*d+1;
else
d=d/2;
e++;
}
if(e>f)
f=e;
}
cout<<f+1<<'\n';
}
}
我因為不知道a可能比b大,而吃了一次WA
這題測資不大
,加:
ios::sync_with_stdio(false);
cin.tie(0);
的作用不大,而且多使用這些函數會增加些許記憶體用量
建議測資大小超過5MB時再加
這題要加速可以使用位元運算,或是解題報告的方法
謝學長,我懂了
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv){
int a,b,d,e,f;
ios::sync_with_stdio(false);<----------
cin.tie(0);<-------------------------------我加了卻沒加速,還增加記憶體
while(cin>>a>>b){
cout<<a<<' '<<b<<' ';
if(a>b){
f=a;
a=b;
b=f;
}
f=0;
for(int c=a;c<=b;c++){
e=0;
d=c;
while(d!=1){
if(d%2==1)
d=3*d+1;
else
d=d/2;
e++;
}
if(e>f)
f=e;
}
cout<<f+1<<'\n';
}
}
我因為不知道a可能比b大,而吃了一次WA
這題測資不大
,加:
ios::sync_with_stdio(false);
cin.tie(0);
的作用不大,而且多使用這些函數會增加些許記憶體用量
建議測資大小超過5MB時再加
這題要加速可以使用位元運算,或是解題報告的方法
謝學長,我懂了
關於
ios::sync_with_stdio(false);
cin.tie(0);
的補充資料:
http://chino.taipei/note-2016-0311C-%E7%9A%84%E8%BC%B8%E5%87%BA%E5%85%A5cin-cout%E5%92%8Cscanf-printf%E8%AA%B0%E6%AF%94%E8%BC%83%E5%BF%AB%EF%BC%9F/
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv){
int a,b,d,e,f;
ios::sync_with_stdio(false);<----------
cin.tie(0);<-------------------------------我加了卻沒加速,還增加記憶體
while(cin>>a>>b){
cout<<a<<' '<<b<<' ';
if(a>b){
f=a;
a=b;
b=f;
}
f=0;
for(int c=a;c<=b;c++){
e=0;
d=c;
while(d!=1){
if(d%2==1)
d=3*d+1;
else
d=d/2;
e++;
}
if(e>f)
f=e;
}
cout<<f+1<<'\n';
}
}
我因為不知道a可能比b大,而吃了一次WA
這題測資不大
,加:
ios::sync_with_stdio(false);
cin.tie(0);
的作用不大,而且多使用這些函數會增加些許記憶體用量
建議測資大小超過5MB時再加
這題要加速可以使用位元運算,或是解題報告的方法
謝學長,我懂了
關於
ios::sync_with_stdio(false);
cin.tie(0);
的補充資料:
http://chino.taipei/note-2016-0311C-%E7%9A%84%E8%BC%B8%E5%87%BA%E5%85%A5cin-cout%E5%92%8Cscanf-printf%E8%AA%B0%E6%AF%94%E8%BC%83%E5%BF%AB%EF%BC%9F/
謝學長,但我兩個都曾看過XD