c++作业

1392 - 回文偶数?
题目描述
小明发现有一类数非常有趣,他们正过来读和反过来读是一样的,比如: 121 202 383 等,小明给这类数起了一个名字,叫做回文数。
请你写程序帮助小明找出所有 3 位的既是回文数,又是偶数的数,比如: 202 就是满足条件的数,而 121虽然是回文数但不是偶数。
输入
输出
所有满足条件的 3 位的回文偶数,每行 1 个。 
#include<iostream>
using namespace std;
int main()
{
	for(int i = 100;i<=999;i++)
	{
		int g = i%10;
		int s = i/10%10;
		int b = i/100%10;
		if(i%2==0&&(g == b))
		{
			cout<<i<<endl;
		}
	}
	return 0;
1266 - 求最大数
题目描述
555555 的约数中最大的三位数是多少?
输入
输出
约数中最大的三位数
1264 - 4 位反序数
题目描述
N 是一个四位数,它的 9 倍恰好是其反序数,求 N 。反序数就是将整数的数字倒过来形成的整数。例
如: 1234 的反序数是 4321
输入
输出
输出 N 这个四位数
#include<iostream>
using namespace std;
int main()
{
	for(int i = 1000;i<=9999;i++)
	{
		int g = i%10;
		int s = i/10%10;
		int b = i/100%10;
		int q = i/1000%10;
		int k = g*1000+s*100+b*10+q;
		if(i*9 == k)
		{
			cout<<i;
		}
	}
	
	return 0;
}
1059 - 求数
题目描述
输出 1—999 中有因数 3 ,且至少有一位数字是 5 的数
输入
输出
若干个数 每行一个
#include<iostream>
using namespace std;
int main()
{
	for(int i = 1;i<=999;i++)
	{
		int g = i%10;
		int s = i/10%10;
		int b = i/100%10;
		if(i%3 == 0&&(g == 5||s == 5||b == 5))
		{
			cout<<i<<endl;
		}
	}
	
	return 0;
}
1058 - 求出 100 999 范围内的所有水仙花数。
题目描述
所谓水仙花数,就是指各位数字立方之和等于该数的数; a^3 a 3 称为 a 的立方,即等于 a \times a
\times a a × a × a 的值。
例如:因为 153=1^3+5^3+3^3153=13+53+33 ,所以 153153 是一个水仙花数。
输入
输出
若干行,每行一个整数,表示该范围内的所有水仙花数。按从小到大的顺序输出
#include<iostream>
using namespace std;
int main()
{
	for(int i = 1;i<=999;i++)
	{
		int g = i%10;
		int s = i/10%10;
		int b = i/100%10;
		if(g*g*g+s*s*s+b*b*b == i)
		{
			cout<<i<<endl;
		}
	}
	
	return 0;
}
1021 - 求数 II
题目描述
1—500 中,找出能同时满足用 3 除余 2 ,用 5 除余 3 ,用 7 除余 2 的所有整数
输入
输出
若干个数
每行一个
​
#include<iostream>
using namespace std;
int main()
{
	for(int i = 1;i<=500;i++)
	{
		if(i%3 == 2 && i%5 == 3&& i%7 == 2)
		{
				cout<<i<<endl;
		}
	}
 
	return 0;

​
}
1017 - 求零件个数
题目描述
有一堆 100 多个的零件,若三个三个数,剩二个;若五个五个数,剩三个;若七个七个数,剩五个。请
你编一个程序计算出这堆零件至少是多少个?
输入
输出
一行,一个整数。
#include<iostream>
using namespace std;
int main()
{
	for(int i=100;i<=199;i++)
	{
		if(i%3==2 && i%5==3&& i%7 == 5)
		{
			cout<<i<<endl;
		}
	}
	
	return 0;
}
1722 - 输出两位的巧数
题目描述
巧数指的是这样一种特殊的数,该数的各个位数字之和加上各个位数字之积等于本身的自然数。比如整
19 ,就是一个巧数,因为 (1+9)+(1*9) = 10 + 9 =19
请编程输出所有 2 位的巧数。
输入
输出
由小到大输出所有的 2 位巧数,每行 1 个。
#include<iostream>
using namespace std;
int main()
{
	for(int i = 1;i<=99;i++)
	{
		int g = i%10;
		int s = i/10%10;
		if((g+s)+(g*s) == i)
		{
			cout<<i<<endl;
		}
	}
	return 0;
}
1721 - 输出个位为 5 或者个位为 8
题目描述
请从小到大输出 1~n 中所有个位为 5 或者个位为 8 的所有的整数,每行 1 个。
比如,假设 n=20 ,那么满足条件的数输出如下:
5
8
15
18
输入
一个整数 n
输出
1~n 中所有满足条件的整数。
1715 - 输出满足条件的整数 5
题目描述
有这样一个四位数 , 其千位和百位之和为偶数,十位和个位之和为奇数,且前两位之和大于后两位之和,
且含有因数 8 ,请输出满足上述条件的整数。
输入
输出
输出满足条件的整数,每行一个。
#include<iostream>
using namespace std;
int main()
{
	
	for(int i = 1000;i<=9999;i++)
	{
		int g = i/10;
		int s = i/10%10;
		int b = i/100%10;
		int q = i/1000%10;
		if(q+b%2 == 0 && g+s%2 != 0&& q+b<g+s&&i%8 == 0)
		{
			cout<<i<<endl;
		}
	}
	
	return 0;
}
1714 - 输出满足条件的整数 4
题目描述
输出 1-n 中含有数字 3 或者含有数字 5 ,且因数有 2 (即能被 2 整除)的所有整数。( n < 1000
输入
从键盘输入一个整数 n
输出
输出满足条件的整数,每行一个
#include<iostream>
using namespace std;
int main()
{
	int i = 1;
	int n,g,s,b,q;
	cin>>n;
	while(i<=n<1000)
	{
		
		if(i%2 == 0&&(g == 3&&5||s == 3&&5||b == 3&&5||q == 3&&5))
		{
		    cout<<i<<endl;
			i++;
		}
	}
             
	return 0;
}

1713 - 输出满足条件的整数 3
题目描述
有一个数列,该数列的前 4 个数是: 1 4 7 10
请从键盘读入一个正整数 n ,请通过观察前 4 项的规律,输出 1~n 之间所有满足该规律的数字。
输入
在一行输入一个整数 n
输出
输出满足题目要求的整数,每行 1 个。
#include<iostream>
using namespace std;
int main()
{
	for(int i = 1;i<=999;i++)
	{
		int g = i%10;
		int s = i/10%10;
		int b = i/100%10;
		if((g%2 == 0 && s%2 == 0 && b%2 == 0)&&b>s&&s>g)
		{
			cout<<i<<endl;
		}
	}
             
	return 0;
}

1711 - 输出满足条件的整数1

题目描述 有这样的两位数,其十位上的数字比个位上的数字要大,且十位和个位上的数字之和为偶数,请找出所 有的满足条件的2位数。 输入 无 输出 输出满足条件的2位数,每行一个

#include<iostream>
using namespace std;
int main()
{
	for(int i= 1;i<=99;i++)
	{
		int g = i%10;
		int s = i/10%10;
		if(s>g&&i%2 == 0)
		{
			cout<<i<<endl;
		}
	}
	return 0;
1701 - 请输出所有的 3 位对称数
题目描述
请输出所有的 3 位对称数,对称数指的是一个整数 n 正过来和倒过来是一样的,比如: 101 121
282……
请从小到大输出符合条件的 3 位对称数,每行 1 个。
输入
输出
从小到大按题意输出符合条件的数,每行 1 个。
#include<iostream>
using namespace std;
int main()
{
	for(int i= 100;i<=999;i++)
	{
		int g = i%10;
		int s = i/10%10;
		int b = i/100%10;
		if(g*100+s*10+b*1 == i)
		{
			cout<<i<<endl;
		}
	}
	return 0;
}
1700 - 请输出所有的 2 位数中,含有数字 2 的整数
题目描述
请输出所有的 2 位数中,含有数字 2 的整数有哪些,每行 1 个,按照由小到大输出。
比如: 12 21 22 23…… 都是含有数字 2 的整数。
输入
输出
按题意要求由小到大输出符合条件的整数,每行 1 个。
#include<iostream>
using namespace std;
int main()
{
	for(int i= 10;i<=99;i++)
	{
		int g = i%10;
		int s = i/10%10;
		if(g == 2||s == 2)
		{
			cout<<i<<endl;
		}
	}
	return 0;
}

1699 - 输出是2的倍数,但非3的倍数的数

题目描述 请从键盘读入一个整数n,输出1~n中所有是2的倍数,但非3的倍数的数,每行1个。 比如,读入一个整数10,输出结果如下: 2 4 8 10 输入 一个整数n。 输出 按要求输出1~n中满足条件的整数,每行1个。

#include<iostream>
using namespace std;
int main()
{
	int i=1;
	int n;
	cin>>n;
	while(i<=n)
	{
			i = i*2;
	        cout<<i<<endl;
	}
	return 0;
}
1698 - 请输出带有特殊尾数的数
题目描述
请输出 1~n 中所有个位为 1 3 5 7 中任意一个数的整数,每行 1 个。 (n < 1000)
比如,假设从键盘读入 20 ,输出结果如下:
1
3
5
7
11
13
15
17
输入
一个整数 n
输出
输出满足条件的数,每行 1 个。
1697 - 请输出 n~1 之间所有的整数
题目描述
从键盘读入一个整数 n ,请输出 n~1 之间所有的整数,每行输出 1 个。
比如,假设读入 n=5 ,输出结果如下:
5
4
3
2
1
输入
一个整数 n
输出
输出 n~1 之间所有的数,每行 1 个。
#include<iostream>
using namespace std;
int main()
{
	int i=1;
	int n;
	cin>>n;
	while(i<=n)
	{
		cout<<i<<endl;
		i++;
	}
	return 0;
}

1696 - 请输出 1~n 之间所有的整数
题目描述
1
3
5
7
11
13
15
17
5
5
4
3
2
1 从键盘读入一个整数 n ,请循环输出 1~n 之间所有的整数,每行输出 1 个。
比如,假设 n=5 ,那么输出结果如下:
1
2
3
4
5
输入
一个整数 n
输出
输出 1~n 之间所有的整数。
#include<iostream>
using namespace std;
int main()
{
	int i=1;
	int n;
	cin>>n;
	while(i>=n)
	{
		cout<<i<<endl;
		i++;
	}
	return 0;
}

1882 - 循环输出 100~1 之间的每个数
题目描述
请循环输出 100~1 之间的每个整数,输出时每行输出 1 个数,比如,输出结果的前 10 个数是这样的:
100
99
98
97
96
95
94
93
92
91
...
按要求输出 100~1 之间的每个数。
#include<iostream>
using namespace std;
int main()
{
	for(int i = 100;i>=1;i--)
	{
		cout<<i<<endl;
	}
	return 0;
}

1881 - 循环输出 1~100 之间的每个数
题目描述
请循环输出 1~100 之间的每个整数,输出时每行输出 1 个数,比如,输出结果的前 10 个数是这样的:
1
2
3
4
5
6
7
8
9
10
...
输入
输出
按要求输出 1~100 之间的每个数。
#include<iostream>
using namespace std;
int main()
{
	for(int i = 1;i<=100;i++)
	{
		cout<<i<<endl;
	}
	return 0;
}
1863 - 特殊的数字四十
题目描述
1234 是一个非常特殊的四位数,因为它的各位数之和为 10 ,编程求所有这样的四位整数。
输入
输出
按从小到大的顺序输出满足条件的四位数。每个数字占用一行。
​
#include<iostream>
using namespace std;
int main()
{
	for(int i = 1000;i<=9999;i++)
	{
		int g = i%10;
		int s = i/10%10;
		int b = i/100%10;
		int q = i/1000%10;
		if(g+s+b+q == 10)
		{
			cout<<i<<endl;
		}
		
	}
	return 0;
}
 
​
1861 - 整除问题
题目描述
编写一个程序,输入三个正整数 min max factor ,然后对于 min max 之间的每一个整数(包括 min
max ),如果它能被 factor 整除,就把它打印出来。 输入
输入只有一行,包括三个整数 min max factor
输出
输出只有一行,包括若干个整数,数与数之间用空格隔开。
1748 - 山形数
题目描述
山形数指的是一个三位数,中间的十位比两边的个位和百位都大,类似山的形状。
请编程输出所有的山形数。
输入
输出
从小到大输出所有的山形数,每行 1 个。
#include<iostream>
using namespace std;
int main()
{
	for(int i = 100;i<=999;i++)
	{
		int g = i%10;
		int s = i/10%10;
		int b = i/100%10;
		if(s>g&&s>b)
		{
			cout<<i<<endl;
		}
		
	}
	return 0;
}

1746 - 能被 2 3 5 7 中至少 2 个数整数的数
题目描述
请输出 1~n 中至少能够被 2 3 5 7 中两个及两个以上的数整除的数?
比如: 30 ,就是能够被 2 3 5 7 中的 3 个数整除,就是符合条件的数。
输入
一个整数 n n<=200
输出
输出 1~n 中满足条件的数,每行 1 个。
1737 - 奇怪的数?
题目描述
小明最近刚刚学习数学,回家后老师布置了一道题目:要求小明找出满足条件的奇怪整数:
A 、该数为四位数
B 、该数的千位和十位对调,百位和个位对调后,仍然等于本身
C 、该数为奇数。
你能帮助小明找到满足以上条件的奇怪整数吗?
输入
输入一个整数 n(n >=1000)
输出
n 以内的奇怪整数,每行一个
样例
输入复制
输出复制
20
6
10
12
14
15
18
20
2000
1111
1313
1515
1717
1919
#include<iostream>
using namespace std;
int main()
{
	for(int i = 1000;i<=9999;i++)
	{
		int g = i%10;
		int s = i/10%10;
		int b = i/100%10;
		int q = i/1000%10;
		if(i%2 != 0&&q*10+b*1+s*1000+g*100 == i)
		{
			cout<<i<<endl;
		}
		
	}
	return 0;
1466 - 等差数
题目描述
Peter 同学刚刚在学校学习了等差数列的概念。等差数列,指的是一组数,这些数连续 2 个数的差值是相
等的,比如: 1 2 3 1 3 5 8 5 2 ,这些数的连续两个数的差值都是相等的。
Peter 根据等差数列的概念,自己定义了一个等差数的概念,这种数如果连续 2 位的差值相等, Peter 就认
为它是等差数,比如: 123,159,1357,852 等这些数都是等差数。
请你编程帮助 Peter 同学找出从 m~n 之间,有哪些等差数?
输入
两个整数 m n m<=n ,且 m n 都是 100~9999 之间的数)
输出
输出 m~n 之间的等差数,每行 1
1447 - 统计 4 位的回文数
题目描述
回文数指的是正过来读和反过来读都是一样的数,比如 1661 2772 都是回文数,请你编程找出所有的
4 位的回文数。
输入
输出
由小到大输出所有的 4 位回文数,每行 11 个。
#include<iostream>
using namespace std;
int main()
{
	for(int i = 1000;i<=9999;i++)
	{
		int g = i%10;
		int s = i/10%10;
		int b = i/100%10;
		int q = i/1000%10;
		if(q==g&&b==s)
		{
			cout<<i<<endl;
		}
		
	}
	return 0;
}
1090 - 同因查找
题目描述
求出 10 1000 之内能同时被 2 3 7 整除的数,并输出。
每行一个。
输入
输出
按要求输出满足条件的数,每行 1
#include<iostream>
using namespace std;
int main()
{
	for(int i = 10;i<=1000;i++)
	{
		
		if(i%2  == 0&&i%3 == 0&& i%7 == 0)
		{
			cout<<i<<endl;
		}
		
	}
	return 0;
}
1085 - 寻找雷劈数
题目描述
把整数 3025 从中剪开分为 30 25 两个数,此时再将这两数之和平方,计算结果又等于原数。
(30+25) (30+25)=55 55=3025 ,这样的数叫 雷劈数
求所有符合这样条件的四位数。 (ab+cd)*(ab+cd)=abcd
输入
输出
若干行,每行一个雷劈数,从小到大输出。
#include<iostream>
using namespace std;
int main()
{
	for(int i = 1000;i<=9999;i++)
	{
		int p = i/100;
		int h = i%100;
		if((p+h)*(p+h) == i)
		{
			cout<<i<<endl;
		}
		
	}
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据引用提供的信息,可以得知该算法使用C++实现。以下是该算法的主要步骤和代码框架: 1. 初始化种群 2. 计算适应度函数 3. 选择操作 4. 交叉操作 5. 变异操作 6. 更新种群 7. 判断是否满足终止条件 以下是该算法C++代码框架: ``` // 定义染色体结构体 struct Chromosome { // ... }; // 初始化种群 void initPopulation(vector<Chromosome>& population) { // ... } // 计算适应度函数 void calculateFitness(vector<Chromosome>& population) { // ... } // 选择操作 void selection(vector<Chromosome>& population) { // ... } // 交叉操作 void crossover(vector<Chromosome>& population) { // ... } // 变异操作 void mutation(vector<Chromosome>& population) { // ... } // 更新种群 void updatePopulation(vector<Chromosome>& population) { // ... } // 判断是否满足终止条件 bool isTerminated(int generation) { // ... } // 遗传算法主函数 void geneticAlgorithm() { // 初始化种群 vector<Chromosome> population; initPopulation(population); // 迭代直到满足终止条件 int generation = 0; while (!isTerminated(generation)) { // 计算适应度函数 calculateFitness(population); // 选择操作 selection(population); // 交叉操作 crossover(population); // 变异操作 mutation(population); // 更新种群 updatePopulation(population); // 更新迭代次数 generation++; } } ``` 需要注意的是,以上代码框架只是一个简单的示例,实际的代码实现可能会更加复杂。如果您需要更详细的代码实现,请参考引用中提供的C++代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值