问题标题: 酷町堂:哪里错了3958

0
0
已解决
沈峻宇
沈峻宇
资深天翼
资深天翼

样例为0

#include<iostream>
using namespace std;
int main(){
    int n,cnt=0,a;
    cin>>n;
    while(n==6||n==7){
        if(n>=10){
            if(n%2==0){
                n/=2;
                cnt++;
            }
            else{
                n+=1;
                n/=2;
                cnt++;
            }
        }
        if(n<10){
            a=n+1;
            n*=a;
            cnt++;
        }
    }
    cout<<cnt;
}

我的同学照片会在周日发~~超过六发本人照片哦!(我在别人贴里的回答)


0
已采纳
邓涵睿
邓涵睿
中级天翼
中级天翼

else if

不然的话你单个if绝对会错

0
0
李瑞曦
李瑞曦
高级天翼
高级天翼

第6行的==改成!=

while循环里:

if(n<10)
    n=n*(n+1);
else if(n>=10&&n%2==0)
   n=n/2;
else n=(n+1)/2;
   a++;

a就是cnt

0
张恩泽
张恩泽
高级天翼
高级天翼

这题按照题目条件判断就可以了:

while (n != 6 && n != 7) {
    计算++
    if (n小于10) {
        n *= (n + 1);
    }
    else if (n大于等于是且n % 2 == 0) {
            n /= 2;
     }
    else if (n大于等于10 && n % 2 != 0) {
        n = (n + 1) / 2;
    }
}

最后输出cnt即可AC

我要回答