HDOJ,杭电1877,又一版A+B。。又是进制转化的题目。。

这道题。。我提交了N次,最后内牛满面的AC了。。。。

我只能说,,,粗心大意害死AC!!!!!

(此题的重点就是进制转换的核心代码,还有一个易错点就是输入的十进制数字为0 的时候。)

代码:

/***** HDOJ_1877_又一版A+B ********/

/******** written by C_Shit_Hu ************/

////////////////简单题--数字进制转化题目///////////////

/****************************************************************************/
/* 
简单的进制转化题。。。。。

Problem Description
输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。
  
Input
输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
当m为0时输入结束。
	
Output
输出格式:每个测试用例的输出占一行,输出A+B的m进制数。
	  
*/
/****************************************************************************/


// 
#include 
#include 

int main()
{
	_int64 initNum_A, initNum_B,  sum, aftNum, yu=1 ;
	int i, NUM[40], temp ;
	while(scanf("%I64d%I64d%I64d", &aftNum, &initNum_A, &initNum_B) != EOF && aftNum != 0)
	{
		temp = 0 ;  sum = 1 ;
        memset(NUM, 0, sizeof(NUM)) ;
		sum = initNum_A + initNum_B ; 
		while(sum != 0)
		{
			yu = sum % aftNum ;
			sum /= aftNum ;
			NUM[temp] = yu ;
			temp ++ ;
		}   // 转换的核心代码
		if (temp == 0)
		{
			printf("0\n") ;
		} // 易错点
		else
		{
			for (i = temp-1; i >= 0; i--)
			{
				printf("%d", NUM[i]) ;
			}
			printf("\n") ;
		}
	}
	return 0 ;
}


/******************************************************/
/********************  心得体会  **********************/
/*
果然是水题。。。
还做的那么慢。。

  水水更健康!!!
*/
/******************************************************/



你可能感兴趣的:(C/C++基础学习)