首页 > HDOJ解题报告 > HDU 1877 又一版 A+B

HDU 1877 又一版 A+B

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1877

题目描述:输入两个不超过整型定义的非负10进制整数A和B(不大于2的31次方-1),输出A+B的m (m大于1小于10)进制数。
输入数据:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。当m为0时输入结束。
输出数据:每个测试用例的输出占一行,输出A+B的m进制数。

看上去很简单,提交的时候各种WA。仔细看了下题目,难道是数据范围超了?用unsigned int应该不会有问题的,后来还是一直WA。网上找了下,发现是楼了结果为0的情况,确实是这样。好久没做题,发现这方面的coding能力远远不行了,所以先多做的水题,就当是好好的复习下算法和数据结构。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// LANG: C++
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
void work(unsigned int num, int base)
{
	char str[40] = {0};
	int i = 0;
	// 判断结果是否为0
	if (!num)
	{
		printf("0\n");
		return ;
	}
 
	while (num)
	{
		str[i++] = num % base + '0';
		num /= base;
	}
	--i;
	while (i >= 0) putchar(str[i--]);
	putchar('\n');
}
 
int main(int argc, char **argv)
{
	unsigned int base, left, right;
	while (1)
	{
		scanf ("%u", &base);
		if (!base) break;
		scanf("%u %u", &left, &right);
 
		left += right;
		work(left, base);
	}
 
	return 0;
}

觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> HDU 1877 又一版 A+B
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



分类: HDOJ解题报告 标签: ,
  1. 2011年8月31日00:54 | #1

    其实就是一个进制转换的算法

    [回复]

    代码疯子 回复:

    @baiyuxiong, 恩,是的。

    [回复]