【PTA】7-8 到底有多二 (15分)

简介: 【PTA】7-8 到底有多二 (15分)

此程序还有一个训练点通不过 希望有大佬能指出问题所在

一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11×1.5×2×100%,约为81.82%。本题就请你计算一个给定整数到底有多二。

输入格式:
输入第一行给出一个不超过50位的整数N。

输出格式:
在一行中输出N犯二的程度,保留小数点后两位。

输入样例:
-13142223336

输出样例:
81.82%

鸣谢安阳师范学院段晓云老师和软件工程五班李富龙同学补充测试数据!

#include <string.h>
#include <stdio.h>
#include <math.h>
int main()
{
    double sum=1.0,cd;
    int cnt=0,shu=0,len;
    char N[100];
    gets(N);
    len=strlen(N);
    if(N[0]=='-') len-=1;
    for(int i=0;i<=len;i++){
        if(N[i]=='2') cnt++;
    }
    if(N[0]=='-') sum*=1.5;
        else shu+=N[0];
    for(int j=1;j<=len;j++){
        shu=shu*10+N[j];
    }
    if(shu%2==0) sum*=2;
    cd=1.0*cnt/len*sum*100;
    printf("%.2lf%%",cd);
    return 0;

}

目录
相关文章
|
10月前
PTA 7-5 素数排位(10 分)
PTA 7-5 素数排位(10 分)
PTA 7-4 胖达与盆盆奶 (20 分)
俗称“胖达”,会排队吃盆盆奶。它们能和谐吃奶的前提,是它们认为盆盆奶的分配是“公平”的,即:更胖的胖达能吃到更多的奶,等胖的胖达得吃到一样多的奶。
108 0
PTA 7-1 多二了一点 (15 分)
若一个正整数有 2n 个数位,后 n 个数位组成的数恰好比前 n 个数位组成的数多 2,则称这个数字“多二了一点”。
82 0
PTA 1088 三人行 (20 分)
子曰:“三人行,必有我师焉。择其善者而从之,其不善者而改之。”
66 0
|
测试技术
PTA 1039 到底买不买 (20 分)
小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。
88 0
PTA 1046 划拳 (15 分)
划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。
75 0
|
测试技术
PTA 1011 A+B 和 C (15 分)
给定区间 [−2 31 ,2 31 ] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。
89 0
|
C语言
PTA 1026 程序运行时间 (15 分)
要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。
91 0
PTA 1016 部分A+B (15 分)
正整数 A 的“D A ​ (为 1 位整数)部分”定义为由 A 中所有 D A ​ 组成的新整数 P A ​
72 0
PTA 7-4 最近的斐波那契数 (20 分)
斐波那契数列 F n ​ 的定义为:对 n≥0 有 F n+2 ​ =F n+1 ​ +F n ​ ,初始值为 F 0 ​ =0 和 F 1 ​ =1。
67 0