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;
}
时间: 2024-10-16 06:14:36

poj 2190 ISBN的相关文章

POJ题目分类

初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      (4)递推.      (5)构造法.(poj3295)      (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法:      (1)图的深度优先遍历和广度优先遍历.      (2)最短路径算法(dijkstra,bellman-ford

PHP校验ISBN码的函数

   最近在编写一个图书管理程序的时候,需要校验图书ISBN码正确性,查了一些资料,了解了图书ISBN码的构成,详细资料可以参考:国际标准书号 – 维 基百科,下面还是简述一下什么是ISBN码: 国际标准书号(International Standard Book Number,ISBN:拟发音is-ben),是国际通用的图书或独立的出版物(除定期出版的期刊)代码.出版社可以通过国际标准书号清晰的辨认所有非期刊书籍.一个国际标准书号只有一个或一份相应的出版物与之对应.新版本如果在原来旧版的基础上

检查ISBN号码是否合法

[程序语言] PHP [源码来源] http://px.sklar.com [功能描述] 检查用户输入的ISBN号码(可以带也可以不带连字符号)是否合法. 源代码如下: <?php /* * Check to see if the entered isbn is valid and return * true or false depending. * I'm not even going to try to claim copyright for such * a simple thing.

PHP实例:国际标准书号ISBN码校验函数

最近在编写一个图书管理程序的时候,需要校验图书ISBN码正确性,查了一些资料,了解了图书ISBN码的构成,详细资料可以参考:国际标准书号 – 维基百科,下面还是简述一下什么是ISBN码: 国际标准书号(International Standard Book Number,ISBN:拟发音is-ben),是国际通用的图书或独立的出版物(除定期出版的期刊)代码.出版社可以通过国际标准书号清晰的辨认所有非期刊书籍.一个国际标准书号只有一个或一份相应的出版物与之对应.新版本如果在原来旧版的基础上没有内容

POJ:DNA Sorting 特殊的排序

Description One measure of ``unsortedness'' in a sequence is the number of pairs of entries that are out of order with respect to each other. For instance, in the letter sequence ``DAABEC'', this measure is 5, since D is greater than four letters to

POJ 1001 Exponentiation 无限大数的指数乘法 题解

POJ做的很好,本题就是要求一个无限位大的指数乘法结果. 要求基础:无限大数位相乘 额外要求:处理特殊情况的能力 -- 关键是考这个能力了. 所以本题的用例特别重要,再聪明的人也会疏忽某些用例的. 本题对程序健壮性的考查到达了变态级别了. 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/ 某人贴出的测试用例数据地址: http://poj.org/showmessage?message_id=76017 有

POJ 2240 Arbitrage:最短路 Floyd

Arbitrage:http://poj.org/problem?id=2240 大意: 给你m种货币,给你m种货币兑换规则,问通过这些规则最后能不能盈利.eg:1美元换0.5英镑,1英镑换10法郎,1法郎换0.21美元,这样1美元能换0.5*10*0.21=1.05美元,净赚0.05美元. 思路: 用Floyd找出每两种钱之间的最大兑换关系,遍历一遍,看有没有那种钱币最后能盈利,有就输出Yes,没有就是No.在处理钱币名称与编号之间的关系时,可以用map存(比较好用),当然也可以用字符串比较.

POJ 1860 Currency Exchange:最短路 Bellman-Ford

Currency Exchange:http://poj.org/problem?id=1860 大意:有多种货币,之间可以交换,但是需要手续费,也就是说既有汇率又有手续费.问经过交换之后能不能赚. 思路:Bellman_Ford,因为要求最长路,所以松弛条件改一下就好了. Tips: 3              2                  1                20.0货币的数量   兑换点的数量     主人公拥有的货币量    主人公拥有货币的价值1 2 1.00

POJ 1258 Agri-Net:最小生成树 Prim 模版题

Agri-Net:http://poj.org/problem?id=1258 大意:新镇长竞选宣言就是将网络带到每一个农场,给出农场个数,两两之间建光缆的耗费,求所有都联通的最小耗费. 思路:最小生成树,因为边比较稠密,用Prim做. PS:对于比较稠密的图,用Prim,对于比较稀疏的图,用 Kruskal.Kruskal是找边的过程,稀疏的话会比较快. 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/