pat-到底有多二
来源:互联网 发布:淘宝食品类别名称 编辑:程序博客网 时间:2024/05/16 07:19
欢 [编辑资料] [登出]
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
#include <stdio.h>#include <stdlib.h>#include <string.h>/**一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字“-13142223336”是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11*1.5*2*100%,约为81.82%。本题就请你计算一个给定整数到底有多二。输入格式:输入第一行给出一个不超过50位的整数N。输出格式:在一行中输出N犯二的程度,保留小数点后两位。输入样例:-13142223336输出样例:81.82%**/int main(){ /**利用字符串**/ int len; char s[55];/**字符串的声明**/ double ans,num1,num2; int i; while(1==scanf("%s",s))/**只要字符串不是'\0'(空字符),就执行循环条件**/ { num1=num2=1;/**声明变量为下面的负数以及偶数做准备**/ len=strlen(s);/**计算字符串的长度**/ ans=0;/**来计算'2'的个数**/ for( i=0; i<len; ++i) { if(s[i]=='-') { num1=1.5; } else if(s[i]=='2') { ans+=1; } } if(s[len-1]=='0'||s[len-1]=='2'||s[len-1]=='4'||s[len-1]=='6'||s[len-1]=='8')/**只要判断左后一位数字是否为偶数即可**/ { num2=2; } if(s[0]=='-')/**位数不能够包括符号**/ { --len; } printf("%.2lf%%\n",100*ans/len*num1*num2);/**注意取百分符号的格式,更加注意在while循环里面输出值**/ } return 0;}
1 0
- pat-到底有多二
- PAT L1-017. 到底有多二
- PAT L1-017. 到底有多二
- pat:L1-017. 到底有多二
- PAT团队赛L1-017.到底有多二
- PAT 1039 到底买不买
- PAT.1039.到底买不买
- PAT 1039到底买不买
- PAT B1039. 到底买不买
- L1-017. 到底有多二-PAT团体程序设计天梯赛GPLT
- PAT-B 1039. 到底买不买
- PAT-B 1039. 到底买不买
- PAT乙级1039 到底买不买
- [PAT-乙级]1039.到底买不买
- PAT乙级1039 到底买不买
- PAT(BASIC)1039. 到底买不买(20)
- PAT乙级 到底买不买(20)
- 【PAT】1039. 到底买不买(20)
- 面试题20:顺时针打印矩阵
- myeclipse不编译的问题
- JS正则表达式验证账号、手机号、电话和邮箱
- 想转行做运营人?这些事 你要知道
- [iOS 禁用第三方输入法] 禁用第三方输入法+ExtensionPointIdentifier理解
- pat-到底有多二
- CentOS7下解决yum install mysql-server没有可用包的问题
- 对比:冒泡算法和选择算法
- Android自定义View之一:初探实例
- AndroidStudio环境下的jni调用(NDK)的方法
- .net (object sender, EventArgs e) 学习总结
- ACM总结
- Andoird Studio 错误: 非法字符: '\ufeff' 解决方案。
- Android学习笔记十五之TableLayout表格布局