五十六.L1-017 到底有多二

在这里插入图片描述

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    
    
    string s;
    cin >> s;
    int flag = (s[0] == '-' ? 1 : 0);
    int len = s.length();
    int bit = len - flag;
    int count = 0;
    for(int i = 0; i<len; i++)
    {
    
    
        if(s[i] == '2')
            count ++;
    }
    double ans = (double)count / bit * 100;
    if(flag==1)
        ans = ans * 1.5;
    if((s[len-1]-'0') % 2 == 0)
        ans = ans * 2;
    printf("%.2f%%",ans);
    return 0;
}

在这里插入图片描述
将输入的数字定义成字符串,方便判断。先判断正负号,做出标记,然后通过length()函数得出字符串的长度,为遍历判断做准备。通过标记可以得出数字真正的位数和是否增加倍数。通过遍历判断2的个数。最后还要注意类型的转化。

猜你喜欢

转载自blog.csdn.net/JiangYu200015/article/details/108673167