poj入门水题整理12

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的奇偶性,给出结论即可。












  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值