12.11每日一题(备战蓝桥杯循环输出)
- [题目 1722: 【入门】输出两位的巧数](#题目 1722: 【入门】输出两位的巧数)
- [题解 1722: 【入门】输出两位的巧数](#题解 1722: 【入门】输出两位的巧数)
- [题目 1017: 【入门】求零件个数](#题目 1017: 【入门】求零件个数)
- [题解 1017: 【入门】求零件个数](#题解 1017: 【入门】求零件个数)
- [题目 1021: 【入门】求数II](#题目 1021: 【入门】求数II)
- [题解 1021: 【入门】求数II](#题解 1021: 【入门】求数II)
- [题目 1058: 【入门】求出100至999范围内的所有水仙花数。](#题目 1058: 【入门】求出100至999范围内的所有水仙花数。)
- [题解 1058: 【入门】求出100至999范围内的所有水仙花数。](#题解 1058: 【入门】求出100至999范围内的所有水仙花数。)
- [题目 1059: 【入门】求数](#题目 1059: 【入门】求数)
- [题解 1059: 【入门】求数](#题解 1059: 【入门】求数)
- [题目 1264: 【入门】4位反序数](#题目 1264: 【入门】4位反序数)
- [题解 1264: 【入门】4位反序数](#题解 1264: 【入门】4位反序数)
- [题目 1266: 【入门】求最大数](#题目 1266: 【入门】求最大数)
- [题解 1266: 【入门】求最大数](#题解 1266: 【入门】求最大数)
- [题目 1392: 【入门】回文偶数?](#题目 1392: 【入门】回文偶数?)
- [题解 1392: 【入门】回文偶数?](#题解 1392: 【入门】回文偶数?)
- [题目 1447: 【入门】统计4位的回文数](#题目 1447: 【入门】统计4位的回文数)
- [题解 1447: 【入门】统计4位的回文数](#题解 1447: 【入门】统计4位的回文数)
- [题目 1466: 【入门】等差数](#题目 1466: 【入门】等差数)
- [题解 1466: 【入门】等差数](#题解 1466: 【入门】等差数)
- [题目 1737: 【入门】奇怪的数?](#题目 1737: 【入门】奇怪的数?)
- [题解 1737: 【入门】奇怪的数?](#题解 1737: 【入门】奇怪的数?)
- [题目 1746: 【入门】能被2、3、5、7中至少2个数整数的数](#题目 1746: 【入门】能被2、3、5、7中至少2个数整数的数)
- [题解 1746: 【入门】能被2、3、5、7中至少2个数整数的数](#题解 1746: 【入门】能被2、3、5、7中至少2个数整数的数)
- [题目 1748: 【入门】山形数](#题目 1748: 【入门】山形数)
- [题解 1748: 【入门】山形数](#题解 1748: 【入门】山形数)
- [题目 1861: 【入门】整除问题](#题目 1861: 【入门】整除问题)
- [题解 1861: 【入门】整除问题](#题解 1861: 【入门】整除问题)
- [题目 1863: 【入门】特殊的数字四十](#题目 1863: 【入门】特殊的数字四十)
- [题解 1863: 【入门】特殊的数字四十](#题解 1863: 【入门】特殊的数字四十)
- [题目 1085: 【入门】寻找雷劈数](#题目 1085: 【入门】寻找雷劈数)
- [题解 1085: 【入门】寻找雷劈数](#题解 1085: 【入门】寻找雷劈数)
- [题目 1090: 【入门】同因查找](#题目 1090: 【入门】同因查找)
- [题解 1090: 【入门】同因查找](#题解 1090: 【入门】同因查找)
题目 1722: 【入门】输出两位的巧数
题目描述
巧数指的是这样一种特殊的数,该数的各个位数字之和加上各个位数字之积等于本身的自然数。比如整数19,就是一个巧数,因为(1+9)+(1*9) = 10 + 9 =19。
请编程输出所有2位的巧数。
输入
无
输出
由小到大输出所有的2位巧数,每行1个。
来源/分类
[简单循环]
题解 1722: 【入门】输出两位的巧数
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
for(int i = 10 ; i <= 99 ; i++){
int g = i % 10;
int s = i / 10;
int res = s * 10 + g;
if((g + s) + (g * s) == res){
printf("%d\n",i);
}
}
return 0;
}
题目 1017: 【入门】求零件个数
题目描述
有一堆100多个的零件,若三个三个数,剩二个;若五个五个数,剩三个;若七个七个数,剩五个。请你编一个程序计算出这堆零件至少是多少个?
输入
无
输出
一行,一个整数。
来源/分类
[简单循环]
题解 1017: 【入门】求零件个数
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
for(int i = 100 ; ; i++){
if(i % 3 == 2 && i % 5 == 3 && i % 7 == 5){
printf("%d",i);
return 0;
}
}
return 0;
}
题目 1021: 【入门】求数II
题目描述
在1---500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数
输入
无
输出
若干个数
每行一个
来源/分类
[简单循环]
题解 1021: 【入门】求数II
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
for(int i = 1 ; i <= 500 ; i++){
if(i % 3 == 2 && i % 5 == 3 && i % 7 == 2){
printf("%d\n",i);
}
}
return 0;
}
题目 1058: 【入门】求出100至999范围内的所有水仙花数。
题目描述
所谓水仙花数,就是指各位数字立方之和等于该数的数;a^3称为a的立方,即等于a×a×a的值。例如:因为153=1^3+5^3+3^3,所以153是一个水仙花数。
输入
无
输出
若干行,每行一个整数,表示该范围内的所有水仙花数。按从小到大的顺序输出。
来源/分类
[简单循环]
题解 1058: 【入门】求出100至999范围内的所有水仙花数。
#include<iostream>
#include<cstdio>
#include<cmath>
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;
if(pow(g,3) + pow(s,3) + pow(b,3) == i){
printf("%d\n",i);
}
}
return 0;
}
题目 1059: 【入门】求数
题目描述
输出1---999中有因数3,且至少有一位数字是5的数
输入
无
输出
若干个数 每行一个
来源/分类
[简单循环]
题解 1059: 【入门】求数
#include<iostream>
#include<cstdio>
#include<cmath>
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;
if((g == 5 || s == 5 || b ==5) && i % 3 == 0){
printf("%d\n",i);
}
}
return 0;
}
题目 1264: 【入门】4位反序数
题目描述
设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒
过来形成的整数。例如:1234的反序数是4321。
输入
无
输出
输出N这个四位数
来源/分类
[简单循环]
题解 1264: 【入门】4位反序数
#include<iostream>
#include<cstdio>
#include<cmath>
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;
int res = (g * 1000) + (s * 100) + (b * 10) + q;
int ans = i * 9;
if(res == ans){
printf("%d\n",i);
}
}
return 0;
}
题目 1266: 【入门】求最大数
题目描述
问555555的约数中最大的三位数是多少?
输入
无
输出
约数中最大的三位数
来源/分类
[简单循环]
题解 1266: 【入门】求最大数
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int i = 555555;
for(int j = 999 ; j >= 100 ; j--){
if(i % j == 0){
printf("%d",j);
return 0;
}
}
return 0;
}
题目 1392: 【入门】回文偶数?
题目描述
小明发现有一类数非常有趣,他们正过来读和反过来读是一样的,比如:121、202、383等,小明给这类数起了一个名字,叫做回文数。
请你写程序帮助小明找出所有3位的既是回文数,又是偶数的数,比如:202就是满足条件的数,而121虽然是回文数但不是偶数。
输入
无
输出
所有满足条件的3位的回文偶数,每行1个。
来源/分类
[简单循环]
题解 1392: 【入门】回文偶数?
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
for(int i = 100 ; i <= 999 ; i++){
int temp = i;
int res = 0;
while(temp != 0){
res = res * 10 + temp % 10;
temp /= 10;
}
if(res % 2 == 0 && res == i){
printf("%d\n",i);
}
}
return 0;
}
题目 1447: 【入门】统计4位的回文数
题目描述
回文数指的是正过来读和反过来读都是一样的数,比如1661、2772都是回文数,请你编程找出所有的4位的回文数。
输入
无
输出
由小到大输出所有的4位回文数,每行1个。
来源/分类
[简单循环]
题解 1447: 【入门】统计4位的回文数
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
for(int i = 1000 ; i <= 9999 ; i++){
int temp = i;
int res = 0;
while(temp != 0){
res = res * 10 + temp % 10;
temp /= 10;
}
if(res == i){
printf("%d\n",i);
}
}
return 0;
}
题目 1466: 【入门】等差数
题目描述
Peter同学刚刚在学校学习了等差数列的概念。等差数列,指的是一组数,这些数连续2个数的差值是相等的,比如:1 2 3,1 3 5,8 5 2,这些数的连续两个数的差值都是相等的。
Peter根据等差数列的概念,自己定义了一个等差数的概念,这种数如果连续2位的差值相等,Peter就认为它是等差数,比如:123,159,13579,852等这些数都是等差数。
请你编程帮助Peter同学找出从m~n之间,有哪些等差数?
输入
两个整数m和n(m<=n,且m和n都是100~9999之间的数)
输出
输出m~n之间的等差数,每行1个
样例输入 复制
plain
900 2000
样例输出 复制
plain
951
963
975
987
999
1111
1234
1357
来源/分类
[简单循环]
题解 1466: 【入门】等差数
#include<iostream>
#include<cstdio>
using namespace std;
int n , m ;
int main()
{
scanf("%d %d",&n,&m);
for(int i = n ; i <= m ; i++){
int g = i % 10;
int s = i / 10 % 10;
int b = i / 100 % 10;
int q = i / 1000;
if(i < 1000){
if(b - s == s - g){
printf("%d\n",i);
}
} else{
if(q - b == b - s && b - s == s - g && q - b == s - g){
printf("%d\n",i);
}
}
}
return 0;
}
题目 1737: 【入门】奇怪的数?
题目描述
小明最近刚刚学习数学,回家后老师布置了一道题目:要求小明找出满足条件的奇怪整数:
A、该数为四位数
B、该数的千位和十位对调,百位和个位对调后,仍然等于本身
C、该数为奇数。
你能帮助小明找到满足以上条件的奇怪整数吗?
输入
输入一个整数n(n >=1000)
输出
n以内的奇怪整数,每行一个
样例输入 复制
plain
2000
样例输出 复制
plain
1111
1313
1515
1717
1919
来源/分类
[简单循环]
题解 1737: 【入门】奇怪的数?
#include<iostream>
#include<cstdio>
using namespace std;
int n;
int main()
{
scanf("%d",&n);
for(int i = 1000 ; i <= n ; i++){
int g = i % 10;
int s = i / 10 % 10;
int b = i / 100 % 10;
int q = i / 1000;
int res = (s * 1000) + (g * 100) + (q * 10) + b;
if(res == i && i % 2 == 1){
printf("%d\n",i);
}
}
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个。
样例输入 复制
plain
20
样例输出 复制
plain
6
10
12
14
15
18
20
来源/分类
[简单循环]
题解 1746: 【入门】能被2、3、5、7中至少2个数整数的数
#include<iostream>
#include<cstdio>
using namespace std;
int n;
int main()
{
scanf("%d",&n);
for(int i = 1 ; i <= n ; i++){
if((i % 2 == 0 && i % 3 == 0 || i % 5 == 0 || i % 7 == 0) && (i % 2 == 0 || i % 3 == 0 && i % 5 == 0 || i % 7 == 0) && (i % 2 == 0 || i % 3 == 0 || i % 5 == 0 && i % 7 == 0)){
printf("%d\n",i);
}
}
return 0;
}
题目 1748: 【入门】山形数
题目描述
山形数指的是一个三位数,中间的十位比两边的个位和百位都大,类似山的形状。
请编程输出所有的山形数。
输入
无
输出
从小到大输出所有的山形数,每行1个。
来源/分类
[简单循环]
题解 1748: 【入门】山形数
#include<iostream>
#include<cstdio>
#include<cmath>
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;
if(s > b && s > g){
printf("%d\n",i);
}
}
return 0;
}
题目 1861: 【入门】整除问题
题目描述
编写一个程序,输入三个正整数min、max和factor,然后对于min到max之间的每一个整数(包括min和max),如果它能被factor整除,就把它打印出来。
输入
输入只有一行,包括三个整数min、max和factor。
输出
输出只有一行,包括若干个整数,数与数之间用空格隔开。
样例输入 复制
plain
1 10 3
样例输出 复制
plain
3 6 9
提示
【来源】蓝桥杯算法训练
来源/分类
[简单循环] [蓝桥杯]
题解 1861: 【入门】整除问题
#include<iostream>
#include<cstdio>
using namespace std;
int n , m , f;
int main()
{
scanf("%d %d %d",&n,&m,&f);
for(int i = n ; i <= m ; i++){
if(i % f == 0){
printf("%d ",i);
}
}
return 0;
}
题目 1863: 【入门】特殊的数字四十
题目描述
1234是一个非常特殊的四位数,因为它的各位数之和为10,编程求所有这样的四位整数。
输入
无
输出
按从小到大的顺序输出满足条件的四位数。每个数字占用一行。
来源/分类
[简单循环]
题解 1863: 【入门】特殊的数字四十
#include<iostream>
#include<cstdio>
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;
int res = g + s + b + q;
if(res == 10){
printf("%d\n",i);
}
}
return 0;
}
题目 1085: 【入门】寻找雷劈数
题目描述
把整数3025从中剪开分为30和25两个数,此时再将这两数之和平方,计算结果又等于原数。
(30+25)(30+25)=55 55=3025,这样的数叫"雷劈数"。
求所有符合这样条件的四位数。 (ab+cd)*(ab+cd)=abcd
输入
无
输出
若干行,每行一个雷劈数,从小到大输出。
来源/分类
[需要找规律的循环]
题解 1085: 【入门】寻找雷劈数
#include<iostream>
#include<cstdio>
#include<cmath>
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;
int z1 = q * 10 + b;
int z2 = s * 10 + g;
if(pow(z1 + z2,2) == i){
printf("%d\n",i);
}
}
return 0;
}
题目 1090: 【入门】同因查找
题目描述
求出10至1000之内能同时被2、3、7整除的数,并输出。
每行一个。
输入
无
输出
按要求输出满足条件的数,每行1个
来源/分类
[需要找规律的循环]
题解 1090: 【入门】同因查找
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
for(int i = 10 ; i <= 1000 ; i++){
if(i % 2 == 0 && i % 3 == 0 && i % 7 == 0){
printf("%d\n",i);
}
}
return 0;
}