题目描述:
让我们研究一下下面的数字LED显示屏
通常他可以显示0~9之间的任意一个数,但是付付最近发现了他的一个新用处!
他可以只用1块LED版显示11这个数字,如下图:
现在给你一个整数,你能计算出他至少需要多少LED块显示吗?
输入:
输入包含多组测试数据。第一行有一个整数T,代表数据组数。
对于每组测试数据
给出一个整数n; 0≤ n ≤1·10100
输出:
对于每个测试案例首先输出 ”Case #Ti:“ Ti代表第i组测试数据
然后输出一个整数------至少需要多少LED块;
样例输入:
3
0
111
1234567890
样例输出:
Case #1:
1
Case #2:
2
Case #3:
10
#include<cstdio> #include<cstring> int main() { int t; int m,n,sum,flag; char led[101]; scanf("%d",&t); for(int i=1;i<=t;i++) { sum=0; printf("Case #%d:\n",t); scanf("%s",led); m=strlen(led); int flag=0; for(int i=m-1;i>=1;i--) { if(led[i]=='1') { if(flag==1) { sum+=1; flag=0; } else { flag=1; } } else sum+=1; } if(flag==1&&led[0]=='1')sum+=1; else if(flag==1&&led[0]!='1')sum+=2; else sum+=1; printf("%d\n",sum); } return 0; }