巧数指的是这样一种特殊的数,该数的各个位数字之和加上各个位数字之积等于本身的自然数。比如整数19,就是一个巧数,因为(1+9)+(1*9) = 10 + 9 =19。
请编程输出所有2位的巧数。
无
由小到大输出所有的2位巧数,每行1个。
[简单循环]
#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;
}
有一堆100多个的零件,若三个三个数,剩二个;若五个五个数,剩三个;若七个七个数,剩五个。请你编一个程序计算出这堆零件至少是多少个?
无
一行,一个整数。
[简单循环]
#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;
}
在1—500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数
无
若干个数
每行一个
[简单循环]
#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;
}
所谓水仙花数,就是指各位数字立方之和等于该数的数;a3称为a的立方,即等于a×a×a的值。例如:因为153=13+53+33,所以153是一个水仙花数。
无
若干行,每行一个整数,表示该范围内的所有水仙花数。按从小到大的顺序输出。
[简单循环]
#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;
}
输出1—999中有因数3,且至少有一位数字是5的数
无
若干个数 每行一个
[简单循环]
#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;
}
设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒
过来形成的整数。例如:1234的反序数是4321。
无
输出N这个四位数
[简单循环]
#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;
}
问555555的约数中最大的三位数是多少?
无
约数中最大的三位数
[简单循环]
#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;
}
小明发现有一类数非常有趣,他们正过来读和反过来读是一样的,比如:121、202、383等,小明给这类数起了一个名字,叫做回文数。
请你写程序帮助小明找出所有3位的既是回文数,又是偶数的数,比如:202就是满足条件的数,而121虽然是回文数但不是偶数。
无
所有满足条件的3位的回文偶数,每行1个。
[简单循环]
#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;
}
回文数指的是正过来读和反过来读都是一样的数,比如1661、2772都是回文数,请你编程找出所有的4位的回文数。
无
由小到大输出所有的4位回文数,每行1个。
[简单循环]
#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;
}
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个
900 2000
951
963
975
987
999
1111
1234
1357
[简单循环]
#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;
}
小明最近刚刚学习数学,回家后老师布置了一道题目:要求小明找出满足条件的奇怪整数:
A、该数为四位数
B、该数的千位和十位对调,百位和个位对调后,仍然等于本身
C、该数为奇数。
你能帮助小明找到满足以上条件的奇怪整数吗?
输入一个整数n(n >=1000)
n以内的奇怪整数,每行一个
2000
1111
1313
1515
1717
1919
[简单循环]
#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;
}
请输出1~n中至少能够被2、3、5、7中两个及两个以上的数整除的数?
比如:30,就是能够被2、3、5、7中的3个数整除,就是符合条件的数。
一个整数n(n<=200)
输出1~n中满足条件的数,每行1个。
20
6
10
12
14
15
18
20
[简单循环]
#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;
}
山形数指的是一个三位数,中间的十位比两边的个位和百位都大,类似山的形状。
请编程输出所有的山形数。
无
从小到大输出所有的山形数,每行1个。
[简单循环]
#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;
}
编写一个程序,输入三个正整数min、max和factor,然后对于min到max之间的每一个整数(包括min和max),如果它能被factor整除,就把它打印出来。
输入只有一行,包括三个整数min、max和factor。
输出只有一行,包括若干个整数,数与数之间用空格隔开。
1 10 3
3 6 9
【来源】蓝桥杯算法训练
[简单循环] [蓝桥杯]
#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;
}
1234是一个非常特殊的四位数,因为它的各位数之和为10,编程求所有这样的四位整数。
无
按从小到大的顺序输出满足条件的四位数。每个数字占用一行。
[简单循环]
#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;
}
把整数3025从中剪开分为30和25两个数,此时再将这两数之和平方,计算结果又等于原数。
(30+25)(30+25)=5555=3025,这样的数叫“雷劈数”。
求所有符合这样条件的四位数。 (ab+cd)*(ab+cd)=abcd
无
若干行,每行一个雷劈数,从小到大输出。
[需要找规律的循环]
#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;
}
求出10至1000之内能同时被2、3、7整除的数,并输出。
每行一个。
无
按要求输出满足条件的数,每行1个
[需要找规律的循环]
#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;
}