PTA 到底有多二 15分 (C語言)

2021-10-04 20:35:52 字數 982 閱讀 6728

乙個整數「犯二的程度」定義為該數字中包含2的個數與其位數的比值。如果這個數是負數,則程度增加0.5倍;如果還是個偶數,則再增加1倍。例如數字-13142223336是個11位數,其中有3個2,並且是負數,也是偶數,則它的犯二程度計算為:3/11×1.5×2×100%,約為81.82%。本題就請你計算乙個給定整數到底有多二。

輸入格式:

輸入第一行給出乙個不超過50位的整數n。

輸出格式:

在一行中輸出n犯二的程度,保留小數點後兩位。

輸入樣例:

-13142223336

輸出樣例:

81.82%

#include

#include

intmain()

;int i, j, n;

float power =

1.0;

i =0;

scanf

("%s"

,&str);if

(str[0]

=='-'

)else

sign =1;

n =0;

while

(str[i]

) j =

(sign ==-1

)?strlen

(str)-1

:strlen

(str);if

((str[

strlen

(str)-1

]-'0')%2

==0) notodd =2;

if(sign ==-1

) power =

1.5;

float sum;

sum = n*

1.0/ j *power*notodd*

100;

printf

("%0.2f%%"

, sum)

;return0;

}

到底有多二 (15 分)

乙個整數 犯二的程度 定義為該數字中包含2的個數與其位數的比值。如果這個數是負數,則程度增加0.5倍 如果還是個偶數,則再增加1倍。例如數字 13142223336是個11位數,其中有3個2,並且是負數,也是偶數,則它的犯二程度計算為 3 11 1.5 2 100 約為81.82 本題就請你計算乙個...

到底有多二 (15 分

乙個整數 犯二的程度 定義為該數字中包含2的個數與其位數的比值。如果這個數是負數,則程度增加0.5倍 如果還是個偶數,則再增加1倍。例如數字 13142223336是個11位數,其中有3個2,並且是負數,也是偶數,則它的犯二程度計算為 3 11 1.5 2 100 約為81.82 本題就請你計算乙個...

到底有多二 15 分

乙個整數 犯二的程度 定義為該數字中包含2的個數與其位數的比值。如果這個數是負數,則程度增加0.5倍 如果還是個偶數,則再增加1倍。例如數字 13142223336是個11位數,其中有3個2,並且是負數,也是偶數,則它的犯二程度計算為 3 11 1.5 2 100 約為81.82 本題就請你計算乙個...