L1-017 到底有多二
L1-017 到底有多二
代码优势
很多位数字的存储不用定义长整型了
不用将字符串转成整数
(strtoll()
参考 字符串转化为整数和浮点数的几种方法_字符串转换为整数-CSDN博客)
注意
把很长的一串数字转成字符串 char arr[55]; 对于每一位判断是否等于字符‘2’
float p=1.0; 如果p为整型,无法得到 p*=1.5;
判断负数 字符串第一位字符等于‘-’ arr[0]=='-'
当为负数时,长度len-1
最后一位就可以判断奇偶性 (arr[len-1]-'0')%2==0
“%%”就表示一个百分比符号
保留两位小数的百分数 格式 %.2f%%
注意arr[len-1]-'0'和len-=1的顺序,易错
#include<stdio.h>
#include<string.h>
int main()
{
char arr[55];
float p=1.0;
int count=0;
gets(arr);
int len=strlen(arr);
int i=0;
while(i<len)
{
if(arr[i]=='2')
{
count++;
}
i++;
}
if((arr[len-1]-'0')%2==0)
{
p*=2;
}
if(arr[0]=='-')
{
p*=1.5;
len-=1;
}
printf("%.2f%%",(float)count/len*p*100);
return 0;
}