ZOJ-2405 各位和相等的四位数

2405:找到10进制,16进制和12进制下各位数的和相等的10进制四位数。

乍一看好像是进制转换题,其实简单了很多。只要各位上的数字,无需考虑顺序就不用递归,循环即可。也不用考虑字母和数字转换,直接用数字求和即可。

#include<stdio.h>
#include<iostream>
using namespace std;

int cal(int dec,int base)
{
	int sum=0;
	while(dec)
	{
		sum+=dec%base;
		dec/=base;
	}
	return sum;
}

int main()
{	
	int a;
	int b;
	int c;
	for(int i=1000;i<10000;i++)
	{
		a=cal(i,10);
		b=cal(i,16);
		c=cal(i,12);
		if(a==b&&b==c)
			cout<<i<<endl;
	}

}





你可能感兴趣的:(ZOJ)