3425 - Bad QQ ID

  chengzi申请了好多QQ号码,准备拿一个当小号用。

  chengzi对数字很敏感,为了理智的选择一个号码,chengzi决定给每个号码按照以下规则定一个品级

  首先QQ号中不能有4,含有4的都是Bad QQ ID。

  对于其余的数字6和8是传统好数,每个数打5分,1和9寓意深刻每个数打3分,其他的数just so so就每个勉强1分了。

    例如 123789 : 3 + 1 + 1 + 1 + 5 + 3 = 14  

  请你设计一个程序帮助chengzi计算他所有QQ号码的分数。

题目输入

  输入包含一个组数T,表示有T组测试数据。

  (0<T<100)

  每组数据包含一个QQ号码,最短4位,最长不会超过10位,十位数的QQ开头不会超过3。

题目输出

对于每组数据,如果是Bad QQ ID,输出“Bad QQ ID”,其他情况输出每位数字的分数和。

输入/输出样例

题目输入

2
123789
123456789

题目输出

14
Bad QQ ID

C语言解答

#include<stdio.h>
#include<string.h>
int main()
{
	int a,b,c,d,n;
	char q[100];
	scanf("%d",&n);
while(n--)
{
scanf("%s",&q);
for(a=0,b=0,c=0;a<strlen(q);a++)
{
	if(q[a]=='4')
	{b++;
	}
	else if(q[a]=='6'||q[a]=='8')
		c+=5;
	else if(q[a]=='1'||q[a]=='9')
		c+=3;
	else
		c+=1;
}
if(b)
printf("Bad QQ ID\n");
else
printf("%d\n",c);
}
}

C++解答

#include<stdio.h>
#include<string.h>
int main()
{
	int t;
	char s[15];
	scanf("%d",&t);
	getchar();
	while(t--)
	{
		int len,flag = 0,sum = 0;
		gets(s);
		len = strlen(s);
		for(int i = 0;i < len;i++ )
		{
			if(s[i] == '4')
			{
				flag = 1;
				break;
			}
			else if(s[i] == '6' || s[i] == '8')
				sum = sum + 5;
			else if(s[i] == '1' ||s[i] == '9')
				sum = sum + 3;
			else
				sum = sum + 1;
		}
		if(flag)
			printf("Bad QQ ID\n");
		else
			printf("%d\n",sum);
	}
	return 0;
}
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题