暴力枚举

四叶玫瑰

结果填空题目,仅需回答答案即可。不要填写代码。

如果有一个 4 位数,它的每个位上的数字的 4 次幂之和等于它本身,那么我们就称这个数字为一个四叶玫瑰数。请求出所有的四叶玫瑰数。

注意:写出所有合法数字,中间用 空格 分开。如果有多个合法数字则按照从小到大的顺序书写,不要填写任何多余内容或说明性文字,行末不要换行

回答区域输入:

1634 8208 9474

原始代码:

#include <iostream>

using namespace std;
int main()
{
	int mix;
	
	for(int a = 1; a <= 9; a++) {
		for(int b = 0; b <= 9; b++){
			for(int c = 0; c <= 9; c++){
				for(int d = 0; d <= 9; d++){
					mix = a * 1000 + b * 100 + c * 10 + d;
					if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d == mix){
						cout << mix << endl;
					}
				}
			}
		}
	}
	return 0;
 }  

//	==> 1634
//	==> 8208
//	==> 9474

奖券数目

结果填空题目,仅需回答答案即可。不要填写代码。

有些人很迷信数字,比如认为带有数字 4 的数很不吉利。某抽奖活动的奖券号码为 5 位数,要求其中不能出现带有“4”的号码,主办单位需要你计算出来在不出现重复号码奖券的情况下,最多可以发出多少张奖券?(五位数范围为:10000 – 99999)

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字,行末不要换行

回答区域输入:

52488

原始代码:

#include <iostream>

using namespace std;
int main()
{
	int c1, c2, c3, c4, c5;
	int counter = 0;
	
	for(int a = 10000; a <= 99999; a++) {
		c1 = a % 10;
		c2 = ((a - c1) % 100) / 10;
		c3 = ((a - c1 - c2*10) % 1000) / 100;
		c4 = ((a - c1 - c2*10 - c3*100) % 10000) / 1000;
		c5 = a / 10000;
		if(c1 != 4 && c2 != 4 && c3 != 4 && c4 !=4 && c5 !=4)
			counter++;
	}
	
	cout << counter;
	return 0;
 }  

生日蜡烛

结果填空题目,仅需回答答案即可。不要填写代码。

某君从某年开始每年都举办一次生日派对,并且每次都要吹熄与他年龄相同根数的蜡烛。至今他已经吹熄了 236 根蜡烛,那么请问,他从几岁开始过生日派对的。从常识来说,一个人的年龄不大可能超过 200 岁。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字,行末不要换行

回答区域输入:

26

原始代码:

#include <iostream>

using namespace std;
int main()
{
	int cache = 0;
	const int tilnow = 236;
	
	for(int begin = 1; begin < 200; begin++) {
		cache = 0;
		for(int testvalue = begin; testvalue <= 200; testvalue++){
			cache = cache + testvalue;
			if(cache == tilnow) 
				cout << begin;
		}
	}

	return 0;
 }  

回文数字

使用代码实现题目解答。编译器限时 1000 ms,内存限制为 131072 KB。

观察数字:12321,123321 都有一个共同特征,即无论从左向右还是从右向左读,都是相同的。我们称这样的数字为 回文数。
现在要从 5 位或 6 位的十进制数字中找出各个数位之和等于 n 的回文数字。

输入格式

输入一个整数 n(10 ≤ n ≤ 100)。

输出格式

输出所有各个数位之和等于 n 的 5 位和 6 位整数,每个数字按从小到大的顺序排列。如果没有满足条件的数字,则输出 -1。

样例输入

48

样例输出

699996
789987
798897
879978
888888
897798
969969
978879
987789
996699

回答区域输入:

#include <iostream>

using namespace std;
int main()
{
	int n;
	int c1, c2, c3, c4, c5, c6;
	int counter = 0;
	
	cin >> n;
	
	for(int a = 10000; a <= 999999; a++) {
		if(a < 100000){
			c1 = a / 10000;
			c2 = a / 1000 - 10 * c1;
			c3 = a / 100 - 100 * c1 - 10 * c2;
			c4 = a / 10 - 1000 * c1 - 100 * c2 - 10 * c3;
			c5 = a % 10;
			if(c1 == c5 && c2 == c4){
				if(c1 + c2 + c3 + c4 + c5 == n){
					counter++;
					cout << a << endl;
				}
			}
		}else{
			c1 = a / 100000;
			c2 = a / 10000 - 10 * c1;
			c3 = a / 1000 - 100 * c1 - 10 * c2;
			c4 = a / 100 - 1000 * c1 - 100 * c2 - 10 * c3;
			c5 = a / 10 - 10000 * c1 - 1000 * c2 - 100 * c3 - 10 * c4;
			c6 = a % 10;
			if(c1 == c6 && c2 == c5 && c3 == c4){
				if(c1 + c2 + c3 + c4 + c5 + c6 == n){
					counter++;
					cout << a << endl;
				}
			}
		}
	}
	
	if(counter == 0){
		cout << -1 << endl;
	}

	return 0;
 }  
页面: 1 2 3 4 5 6

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注