每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399
写一个程序,该程序的功能是输出100到999之间的所有水仙花数。水仙花数的特点是:它的每个位上的数字的三次幂之和等于它本身。
例如:371=3^3+7^3+1^3,因此371是水仙花数。
输出样例:
153 370 371 407
(1)代码实现:
#include
using namespace std;
void findWaterFlowerNum()
{
int ge = 0, shi = 0, bai = 0;
//100~999的数,包含头部不包含尾部
for (int i = 100; i < 999; i++)
{
ge = i % 10;
int n = i / 10;
shi = n % 10;
bai = n / 10;
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i)
cout << i << " ";
}
cout << endl;
}
int main()
{
findWaterFlowerNum();
system("pause");
return 0;
}
在一个递增有序的数组中,有数值相同的元素存在,程序的功能是去掉数值相同的元素,使数组中不再有重复的元素。例如(7,10,10,21,30,42,42,42,51)变成(7,10,21,30,42,51)
算法要求:尽量优化算法的时间复杂度与空间复杂度。
输入格式:
数组元素的个数
数组元素(以空格隔开)
输出格式:
新数组输入样例:
9
7 10 10 21 30 42 42 42 51
输出样例:
7 10 21 30 42 51