码迷,mamicode.com
首页 > 其他好文 > 详细

1001 害死人不偿命的(3n+1)猜想 (15分)

时间:2020-07-11 22:48:36      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:while   count   can   cin   printf   print   ret   int   code   

1001 害死人不偿命的(3n+1)猜想 

写后总结:数字与字母相乘,乘法不能省略;注意局部变量的位置;别光写算法,把"输出"忘记写.



这是一个部分正确的,原因是什么?


#include<iostream> using namespace std; int main() { //int max=1000; int a; cin>>a; int sum; for(sum=0;a!=1;sum++) { if(a%2==1)//是这里 a=a/2; else a=(3*a+1)/2; } cout<<sum; return 0; }





正确代码1:
#include<cstdio> int main() { int n,count=0; scanf("%d",&n); while(n!=1) { if(n%2==0) n=n/2; else n=(3*n+1)/2; count++; } printf("%d",count); return 0; }


正确代码2:

#include<iostream> using namespace std; int main() { int a; cin>>a; int sum=0; for(;a!=1;sum++) { if(a%2==0) a=a/2; else a=(3*a+1)/2; } cout<<sum; return 0; }

 

1001 害死人不偿命的(3n+1)猜想 (15分)

标签:while   count   can   cin   printf   print   ret   int   code   

原文地址:https://www.cnblogs.com/leamant/p/13285670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!