第一次提交的代码如下:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
int n = 0;
int i = 0;
cin >> n;
if (n == 1){
cout << 0;
}
while(n != 1){
if (n % 2 == 0){
n = n / 2 ;
}
else{
n = (3 * n + 1) / 2;
}
i++;
}
cout << i;
return 0;
}
但是没有通过第五个测试点4,于是修改如下:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
int n = 0;
int i = 0;
cin >> n;
while(n != 1){
if (n % 2 == 0){
n = n / 2 ;
}
else{
n = (3 * n + 1) / 2;
}
i++;
}
cout << i;
return 0;
}
全部正确。
总结:
精简,冗余容易致错。