poj 2190 ISBN

简介:

一次A!

这种题目要得就是思路清晰,细心,考虑周全。。。

然后。。然后就没了。。。


注意字符串和int型数据的转来转去。。。


AC的代码:

#include <stdio.h>

char ISBN[12];

void find(int sum,int pos)
{
	//找出那个数字是什么
	int i;
	
	if(pos!=9 && pos!=-1)
	{
		//如果不是最后一位看不清
		for(i=0;i<=9;i++)
		{
			if( (sum+i*(10-pos))%11==0 )
			{
				printf("%d\n",i);
				return;
			}
		}
	}

	else if(pos==9  && pos!=-1)
	{
		for(i=0;i<=10;i++)
		{
			if((sum+i*(10-pos))%11==0 && i==10)
			{
				printf("X\n");
				return;
			}

			if( (sum+i*(10-pos))%11==0)	
			{
				printf("%d\n",i);
				return;
			}
		}
	}

	printf("-1\n");
}

void work()
{
	int pos=-1;//存放问号位置
	
	int i;
	int sum=0;//算除了问号位的总和
	int num;//每一位数的整型形式
	for(i=0;i<10;i++)
	{
		if(ISBN[i]=='?')
		{
			pos=i;
			continue;
		}
		
		if(ISBN[i]=='X')
			num=10;
		
		else
			num=ISBN[i]-48;
		
		sum+=(10-i)*num;
	}
	
	//printf("%d\n",sum);
	find(sum,pos);
}

int main()
{
	//输入
	scanf("%s",ISBN);
	
	work();
	
	return 0;
}




相关文章
|
应用服务中间件 C++ AHAS
hdu1327 Definite Values
hdu1327 Definite Values
51 0
|
6月前
|
Java 数据挖掘 知识图谱
HDU 1114 Piggy-Bank (完全背包)
HDU 1114 Piggy-Bank (完全背包)
31 0
洛谷P1055 ISBN号码(C++解法)
洛谷P1055 ISBN号码(C++解法)
176 0
LeetCode 135. Candy
老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 相邻的孩子中,评分高的孩子必须获得更多的糖果。 那么这样下来,老师至少需要准备多少颗糖果呢?
43 0
LeetCode 135. Candy
|
知识图谱
POJ-1384,Piggy-Bank(完全背包)
POJ-1384,Piggy-Bank(完全背包)
HDU-1009,FatMouse' Trade(贪心水题)
HDU-1009,FatMouse' Trade(贪心水题)