您的位置:首页 > 其它

poj入门水题整理12

2017-01-30 16:33 183 查看
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的奇偶性,给出结论即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: