poj入门水题整理1--按刷题顺序解释

1.1000 A+B

就是熟悉平台的一道题,下面有案例

2.1004 Financial Management

描述:

Larry毕业之后挣钱了想知道他的财务状况,他现在有他的存款清单,想知道他12个月的结余有多少

输入:

12行数字

输出:

12个月的平均值,精确到分

解法:依次读入12个月的金额,输出平均值就好,记得要加一个$


3.3980 取模运算

没什么好说的,注意洗poj的答题模式,会给出一个文件,文件里会有很多行,不止case里给出的这么少,然后和它的标准输出对比,如果都一样,就会AC了。

while((scanf("%d %d",&a,&b)!=EOF)){
这个就是读取一直到文件结尾的一种方法,poj里还会出现其他格式的结尾,题目里会有描述,注意仔细看题。

4.2521 How much did the businessman lose
描述:商人做生意有亏有赚,如果有个给了假币,商人会亏损:货物价格+找钱价格

输入:N商品价格

            M出售的价格

            P假币价格

            C找钱的价格

0 0 0 0 代表输入结束

注意:N

输出:商人赔了多少钱

如果赚了,就输出负数。

解法:四个数加加减减= 。=


5.3086 Triangular Sums

描述:三角数T(n)=1+2+...+n.然后给了个例子,是边长为4的三角形,这个三角形的权重是W(n) = SUM[k = 1…n; k * T(k + 1)]

输入:N代表有几个例子,后面跟着N行数值n(1<=n<=300),

输出:N那行不输出,其余的行输出:

这是输出的第几行 n w(n)

解法:按照说明直接暴力计算就可以了,没什么大问题


6.1207 The 3n + 1 problem

有个算法,n为奇数 n=3n+1,n为偶数,n=n/2,得到的值在不断循环这个过程,直到为1则停止。

比如给出22,给出的结果序列就是22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 

22的循环长度就是16

输入:i,j 且0<,j<10000

输出:i j 和在数字ij之间,最长的循环长度

解法:设立max=0,从i开始,计算每个数字的循环长度,如果大于max,则重置max,然后输出i,j,max就可以了


7.1003 Hangover

描述:能用牌伸出桌子多远呢?最上面的伸出1/2,第二张牌伸出第2张牌的1/3,然后1/4,1/5,最下面的牌长1/(n+1)

输入:c,是0.01~5.20之间的一个数字,0.00代表结束输入,c包含3位小数

输出:需要多少张牌才能达到c这个长度

解法:就是计算1/2+1/3+...+ 1/(n + 1)>=c,这个n最小是多少

           记得输出 n空格card(s),不要少东西


8.3210 Coins

描述:Snoopy有3个硬币,他想通过翻转使这3个硬币都朝上或朝下,一次只能翻转一个硬币,一个硬币可以被翻转多次,他最后发现无论开始是怎样的配置,都可以通过2次翻达到目标,他也发现不能通过少于2次翻转来达成目标。

Snoopy现在想要知道,有n个硬币时,最少需要x次翻转能完成目标,这个x是多少。

注意:是对所有配置都翻转x次,这个x最小是多少

input:n,n<10000,0表示结束

output:输出最小的n,如果没有最小的n,就输出No Solution!(注意感叹号)


解法:

1)n为偶数时,奇数面朝上一定要奇数翻转才可以达成目标,偶数面向上一定要偶数次翻转才能达成目标,x不可能同时为奇偶,所以x不存在

2)n为奇数时,奇数面朝上全翻到朝下就是偶数面朝下全部翻到朝下等同于偶数面朝上全部翻到朝上。

      全部向上或向下时,需要偶数次翻转可以达成目标,所以x为偶数

      当有1面朝上时,因为x为偶数,所以一定要翻转那n-1个才可以达成目标,所以x至少为n-1

      x不可能大于n,此时可以把所有的硬币都翻一遍,不满足最少,所以至少为n-1


9.1002 487-3279

描述:有些电话会用字母替代数字方便记忆,以下是一些字母和数字的等价关系

A, B, and C map to 2 
D, E, and F map to 3 
G, H, and I map to 4 
J, K, and L map to 5 
M, N, and O map to 6 
P, R, and S map to 7 
T, U, and V map to 8 
W, X, and Y map to 9 

有时候为了方便记忆,也会采用不标准的格式记忆,如3-10-10-10的标准格式局势310-1010

现在希望把所有的不标准的电话号码转换为标准的格式,同时,希望在电话簿检查没有2个公司的号码一致。

输入:N代表电话簿的行数,接下来的N行表示电话簿内的电话

输出:按字母升序输出重复的电话号码空格在电话簿内出现的次数

           如果没有重复,输出No duplicates. (注意最后的点)

解法:只要将字母转化为对应的数字,去掉-,在第三位后面加上-就可以了,然后排序,计算重复次数,同时设置flag=0,如果有重复次数,flag位置1,最后如果还是0的话表示没有重复,输出No duplicates. 即可


10.1663 Number Steps

描述:按照图片方式排列的点,想知道在(x,y)是否有写数字

输入:N代表N行输入,接下来N行输入x,y

输出:在(x,y)处写的数字,如果该处没有数字的话,则写No Number

解法:自己找找规律就好,其实就是2条直线,计算下公式,看点是否落在上面


你可能感兴趣的:(poj水题)