每日一小练——Armstrong数

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练!

题目:Armstrong数

内容:

在三位的正整数中,例如abc,有一些可以满足a^3+b^3+c^3=abc的条件,也就是说各个位数的立方和正好是该数本身,这些数称为Armstrong数。是编写一个程序求出所有的三位Armstrong数。

我的解法:上来没多想,打开vs2013就敲了起来,问题果然很简单,分分钟就超神。。奥,不对就解决了!Armstrong数在国内好像就叫做水仙花数,很多程序设计的课本后面都有这种类型的思考题,确实很简单!

#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	bool armstrong(int x);
	for (int i = 100; i <= 999; i++)
	{
		if (armstrong(i))
			cout << i << endl;
	}
	getchar();
	return 0;
}

bool armstrong(int x) //x应该是一个三位数
{
	bool result = false;
	int bai = x / 100;
	int shi = (x / 10) % 10;
	int ge = x % 10;
	if(x == (bai*bai*bai + shi*shi*shi + ge*ge*ge))
		result = true;
	return result;
}

实验结果:

欢迎大家加入每日一小练,嘿嘿!

每天练一练,日久见功夫,加油!

      -End-

参考文献:《c语言名题精选百则》

欢迎大家加入每日一小练,嘿嘿!

每天练一练,日久见功夫,加油!

      -End-

参考文献:《c语言名题精选百则》

每日一小练——Armstrong数

时间: 2024-10-10 04:03:05

每日一小练——Armstrong数的相关文章

每日一小练——快速Fibonacci数算法

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:快速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有如下规律: 尝试寻找快速的求出fn的方法 我的解法:上来没多想,打开vs2013就敲了起来,问题果然很简单,分分钟就超神..奥,不对就解决了! 其实题目中就给出了这个算法的递归形式,所以首先我想到的是递归解法,不过因为求解快速方法在递归之前,我编写了一个非递归的算法 #include <iostream> usi

每日一小练——高速Fibonacci数算法

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:高速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有例如以下规律: 尝试寻找高速的求出fn的方法 我的解法:上来没多想,打开vs2013就敲了起来,问题果然非常easy,分分钟就超神..奥,不正确就攻克了! 事实上题目中就给出了这个算法的递归形式,所以首先我想到的是递归解法,只是由于求解高速方法在递归之前,我编写了一个非递归的算法 #include <iostrea

每日一小练——最长平台问题

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:最长平台问题 内容:一直一个已经从小到大排序的数组,这个数组中的一个平台就是连续的一串同样的元素.而且这个元素不能再延伸. 比如,在1,2,2,3,3,3,4,5,5,6中1,2,2,3,3,3,4,5,5,6都是平台.试编写一个程序,接受一个数组,把这个数组中最长的平台找出来.在这个样例中, 3,3,3就是该数组的中的最长的平台. 说明: 这个程序十分简单,可是编写好却不easy,因此在编敲代码时应注意考虑以下几点:

每日一小练——列出全部子集

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:列出全部子集 内容:写一个程序,列出{1,2,3,4,...,n}这个集合的全部子集,包含空集{ }. 解决问题的算法应该有非常多种,只是我发现了一种非常easy也非常好玩的方法,就是用二进制表示几何元素的方法 比方假设n是3,则子集有(不包含空集){1}{2}{3}{1,2}{1,3}{2,3}{1,2,3}就是1*{0,1}and2*{0,1}and3{0,1}每一个组合出现一次,所以也能够看成是{0,0,1}{0

每日一小练——数值自乘非递归解

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:数值自乘非递归解 内容: 连续求m^n问题(m与n是正整数).前面的提示会得到一个递归程序,请编写一个运算效率同样高的非递归的程序. 我的解法:上来没多想,打开vs2013就敲了起来,问题果然很简单,分分钟就超神..奥,不对就解决了!如果是非递归其实一种简单的方法就是把, 递归的几种分类做好if分支,用一个循环处理就好了,不过如果我们认真思考m^n这个式子,我们会发现n如果用二进制表示的话如:2^7可改写为 2^011

每日一小练——Eratosthenes 筛选法

上得厅堂.下得厨房.写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:Eratosthenes筛选法 内容: 求质数是一个非常普遍的问题,通常不外乎用数去除.除到不尽时,给定的数就是质数. 可是早在2000年前人们就知道了一个不必用除法而找出2~N的全部质数的方法.如果一个非常奇妙的筛子,能够给出一个数.比如i,这个筛子有办法把i全部的倍数去掉. 请用这种方法求出2~N之间的全部质数.即Eratosthenes筛选法. 我的解法:上来没多想.打开vs2013就敲了起来.问题果然非常eas

每日一小练——数组的距离

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:数组的距离 内容:已知两个元素从小到大排列数组x[]和y[],请编写一个程序算出两个数组元素彼此之间差的绝度值中最小的一个 数,此值称作数组的距离. 例如:x[]有1,3,5,7,9   y[]有2,6,8  那么最短距离就是1,因为x[0]和y[0].x[1]和y[0].x[2]和y[1].x[3]和y[1]还有x[4]和 y[2]的距离都是1. 我的解法:上来没多想,打开vs2013就敲了起来,问题果然很简单,分分

每日一小练——列出所有子集

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:列出所有子集 内容:写一个程序,列出{1,2,3,4,...,n}这个集合的所有子集,包括空集{ }. 解决这个问题的算法应该有很多种,不过我发现了一种很简单也很好玩的方法,就是用二进制表示几何元素的方法 比如如果n是3,则子集有(不包括空集){1}{2}{3}{1,2}{1,3}{2,3}{1,2,3}就是1*{0,1}and2*{0,1}and3{0,1}每个组合出现一次,所以也可以看成是{0,0,1}{0,1,0

每日一小练——按字典顺序列出所有排列

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:按字典顺序列出所有排列 内容:请写一个程序,用字典顺序列出n个元素的所有排列 这个问题有点小复杂,不是太好想,反正我是想了好久. 看到这个题目我先是想到的就是递归因为这个题目就是用指针对高位选择,然后将指针传给临近的低位再选择. 不过仔细研究原来没这么简单.以n=4举例当处理以1开头的排列时1234到1432,但是在排列2开头的时候不太好建立统一的递归关系.(没办法太统一的递归方法中将后面的数字选出来),所以将第一位分