蓝桥杯 BASIC-7~九 特殊的数字、回文数、特殊的回文数

蓝桥杯 BASIC-7~9 特殊的数字、回文数、特殊的回文数

特殊的数字

【AC代码】:

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;

int main()
{
	//freopen("in.txt", "r", stdin);
	//freopen("out.txt", "w", stdout);
	int i = 0;
	for (i = 100; i <= 999; i++)
	{
		int n = i, sum = 0;
		while (n)
		{
			int a = n%10;
			n = n/10;
			sum += a*a*a;
		}
		if (i == sum)
			cout << i << endl;
	}
}

回文数

【AC代码】:注意等号。

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;

int main()
{
	//freopen("in.txt", "r", stdin);
	//freopen("out.txt", "w", stdout);
	int i = 0;
	for (i = 1000; i <= 9999; i++)
	{
		int n = i, p = 0, f[4];
		while (n)
		{
			f[p++] = n%10;
			n = n/10;
		}
		if (f[0] == f[3] && f[1] == f[2])
			cout << i << endl;
	}
}

特殊回文数

【AC代码】:注意等号。

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;

int getSum(int x)
{
	int sum = 0;
	while (x)
	{
		sum += x%10;
		x = x/10;
	}
	return sum;
}

int main()
{
	//freopen("in.txt", "r", stdin);
	//freopen("out.txt", "w", stdout);
	int m = 0, i = 0;
	cin >> m;
	for (i = 10000; i <= 99999; i++)
	{
		int n = i, p = 0, f[5];
		while (n)
		{
			f[p++] = n%10;
			n = n/10;
		}
		if (f[0] == f[4] && f[1] == f[3] && m == getSum(i))
			cout << i << endl;
	}
	
	for (i = 100000; i <= 999999; i++)
	{
		int n = i, p = 0, f[6];
		while (n)
		{
			f[p++] = n%10;
			n = n/10;
		}
		if (f[0] == f[5] && f[1] == f[4] && f[2] == f[3] && m == getSum(i))
			cout << i << endl;
	}
}