poj入门水题整理12

来源:互联网 发布:韩国snow软件 编辑:程序博客网 时间:2024/04/30 16:20

1.1503  Integer Inquiry

解释:就是超长的数字求和的问题。无法用int直接完成加减法。

解法:如果不能用int的话,就用数组把,我是直接用char类型读入,然后用int数组保存。然后用数组模拟加减法。


2.1504 Adding Reversed Numbers

解释:要把悲剧中的数字变为逆序的数,且前导的数字中不含0,也就是说1200会变为21.现在你的任务就是拿到2个被逆转的数字,然后给出它们被逆转的和。比如24和1,逆序完是42和1,求和得到43,最终的结果就是43的逆序也就是34。

解法:和上题差不多,按照描述计算即可。


3.2562 Primary Arithmetic

解释:小学数学中的进一法,需要知道在这个计算中有多少次进一,最后按照题目给出的方式输出。

解法:和之前几题一样,用数组计算加法,然后用一个数记录进一的次数即可。


4.3750 小孩报数问题

解释:即约瑟夫环问题。约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

解法:这道实在是无力啊,虽然之前做出来了,可还是很头疼,给个链接吧:

http://blog.163.com/soonhuisky@126/blog/static/157591739201321341221179/


5.2602 Superlong sums

解释:大数相加,只不过这次的数变成了竖着的。

解法:直接相加。


6.3978 Primes

解释:求出a和b之间的质数个数。

解法:暴力打表法,然后统计质数个数。


7.3970 Party

解释:CEO要给最早到来的队伍发奖金,现在需要知道,为了使每个队伍到后,奖金都能均分给所有队员,问至少需要带多少钱。

(当需要带的钱大于或者等于1000000 时,输出

Too much money to pay!

解法:求每个队伍人数的最小公倍数。


8.1565 Skew Binary

解释:平时我们会用到二进制,十进制,这个就是给出了一个新的算法来计算值:

10120= 1 * (2^5-1) + 0 * (2^4-1) + 1 * (2^3-1) + 2 * (2^2-1) + 0 * (2^1-1) 
= 31 + 0 + 7 + 6 + 0 
= 44. 

解法:套公式即可。


9.2389 Bull Math

解释:大数相乘。

解法:用数组计算。贴一下代码,还是很简单的。

while(scanf("%s%s",&a,&b)!=EOF){        memset(ans1,0,sizeof(ans1));l1=strlen(a);l2=strlen(b);for(i=0;i<l1;i++)for(j=0;j<l2;j++)ans1[i+j+1]+=(a[i]-'0')*(b[j]-'0');for(i=l1+l2-1;i>=0;i--)if(ans1[i]>9){ans1[i-1]+=ans1[i]/10;ans1[i]=ans1[i]%10;}if(ans1[0])printf("%d",ans1[0]);for(i=1;i<l1+l2;i++)printf("%d",ans1[i]);printf("\n");}

10.3994 Probability One

解释:说了半天给出的结论是,n1=n0*3,因为3是奇数,所以n1的奇偶性随n0,

n0和n4的关系是,当n0为偶数时, n0 = 2 * n4 , 反之n0 = 2 * n4 + 1 ,现在给出n0,需要求解n4

解法:判断n0的奇偶性,给出结论即可。












0 0