l1-017.到底有多二二分类训练测试数据集

PAT L1-017. 到底有多二
一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字“-”是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11*1.5*2*100%,约为81.82%。本题就请你计算一个给定整数到底有多二。输入格式:输入第一行给出一个不超过50位的整数N。输出格式:在一行中输出N犯二的程度,保留小数点后两位。输入样例:-输出样例:81.82%
整数N的长度最多50,说明需要字符数组存储,超出了int的范围
还有就是 小数输出控制格式 用的是C语言的print
#include&iostream&
int main()
char a[100];
for( t=0;a[t]!='\0';)
float beishu = 1;
if(a[0]=='-')
beishu=beishu+0.5;
k=a[t-1]-'0';//字符转化为数字
if(k%2 == 0)
beishu*=2;
int count = 0;
for(int i = 0;i &i++)
if(a[i] == '2')
//cout&&count&&
if(a[0] == '-')
tt=(100*beishu/(t));
printf ( "%.2f%",tt);
cout&&"%";
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!学年度最新人教版小学数学二年级下册同步测试-数据收集整理-精品试卷_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
学年度最新人教版小学数学二年级下册同步测试-数据收集整理-精品试卷
总评分3.1|
用知识赚钱
试读已结束,如果需要继续阅读或下载,敬请购买
定制HR最喜欢的简历
你可能喜欢To be better!
L1-017. 到底有多二
#include &iostream&
#include &stdio.h&
#include &string&
int main()
int len=str.size(),cnt=0;
for(int i=0;i&i++)
if(str[i]=='2')cnt++;
double ans=cnt+0.0;
if(str[0]=='-')ans=ans*1.5;
int m=(int)str[len-1]-48;
if(m%2==0)ans=ans*2;
if(str[0]=='-')len--;//注意负数的位数
ans=ans*100/
printf("%.2f%%",ans);//注意百分号的输出
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!L1-017.到底有多二
L1-017. 到底有多二
代码长度限制
一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字“-”是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11*1.5*2*100%,约为81.82%。本题就请你计算一个给定整数到底有多二。
输入格式:
输入第一行给出一个不超过50位的整数N。
输出格式:
在一行中输出N犯二的程度,保留小数点后两位。
输入样例:
输出样例:
我的代码1:
#include&iostream&
#include&stdio.h&
int main()
long long n,t;
int cnt1=0,cnt2=0;
double res=1;
if(t%2==0)
if(t%10==2)
res*=cnt2*1.0/cnt1;
printf("%.2lf%%\n",res);
}这题提交上去只得了11分,有两个测试点没过。
我的第一个代码是用long long来存储n的,long long 最多存19位,n最多可以是50位,所以用long long存储空间显然不够。
用字符数组来存储试试,,,
#include&iostream&
#include&stdio.h&
#include&string.h&
char str[55];
int main()
int cnt1=0,cnt2=0;
double res=1;
if(str[0]=='-')
cnt1=strlen(str)-1;
cnt1=strlen(str);
if((str[strlen(str)-1]-'0')%2==0)
for(int i=0;i&strlen(str);i++)
if(str[i]=='2')
res*=cnt2*1.0/cnt1;
printf("%.2lf%%\n",res);
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!不必仰望别人,自己亦是风景
L1-017. 到底有多二
一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字“-”是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11*1.5*2*100%,约为81.82%。本题就请你计算一个给定整数到底有多二。输入格式:输入第一行给出一个不超过50位的整数N。输出格式:在一行中输出N犯二的程度,保留小数点后两位。输入样例:-
输出样例:81.82%
code:#include&bits/stdc++.h&
#include&algorithm&
int main()
double c,d,t;
int a,b,i;
char s[55];
while(~scanf("%s",s)){
b=strlen(s);
if((s[b-1]-'0')%2==0) d=2;
for(i=0;i&b;i++) if(s[i]=='2') a++;
if(s[0]=='-') c=1.5,b--;
t=a*1.0/b*c*d;
printf("%.2f%\n",t*100);
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 新一l1 96测试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信