算法竞赛入门码蹄集新手村600题(MT1201-1250)
Posted 灵彧universe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法竞赛入门码蹄集新手村600题(MT1201-1250)相关的知识,希望对你有一定的参考价值。
算法竞赛入门【码蹄集新手村600题】(MT1201-1250)
@TOC
前言
目录
1. MT1201 强数
(1)题目描述
强数是各位数字的阶乘和等于原始数的数,输入一个数字N,检查它是否为强数。是则输出YES,否则输出NO。比如145,1! +4!+5!=145
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int factor(int n)
int res=1;
for(int i=1;i<=n;i++)
res*=i;
return res;
int main( )
int n,len,sum=0;
cin >> n;
string s = to_string(n);
len = s.size();
for(int i=0;i<len;i++)
sum+=factor(s[i]-0);
if(n==sum) cout<<"YES";
else cout<<"NO";
return 0;
2. MT1202 克里希那穆提数
(1)题目描述
克里希那穆提数是一个数字的阶乘和等于该数本身的数。整数区间,输出区间(含边界)内所有的克里希那穆提数。不考虑0,负数或者其他特殊情况。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int fact(int r)
return r>=1?r*fact(r-1):1;
bool fact1(int n)
int sum=0,k=n,r;
while(k!=0)
r = k%10;
k = k/10;
sum+=fact(r);
return sum == n;
int main( )
int m,n;
cin >> m>> n;
for(int i=m;i<=n;i++)
if(fact1(i)) cout<<i<<" ";
return 0;
3. MT1203 字母矩阵
(1)题目描述
请编写一个简单程序,输入正整数n,输出n*n的F字矩阵
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n;
cin >> n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cout<<"F ";
cout<<endl;
return 0;
4. MT1204 字母三角
(1)题目描述
请编写一个简单程序,输入正整数n,输出n行F字三角
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n;
cin >> n;
for(int i=1;i<=n;i++)
for(int j=1;j<=i*2-1;j++)
cout<<"F";
cout<<endl;
return 0;
5. MT1205 倒三角
(1)题目描述
请编写一个简单程序,输入正整数n,输出n行F字倒三角
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n;
cin >> n;
for(int i=1;i<=n;i++)
for(int j=n;j>=i;j--)
cout<<"F";
cout<<endl;
return 0;
6. MT1206 金字塔
(1)题目描述
请编写一个简单程序,输入正整数n,输出n行W字金字塔
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n;
cin >> n;
for(int i=1;i<=n;i++)
for(int j=0;j<n-i;j++)
cout<<" ";
for(int t=0;t<2*i-1;t++)
cout<<"W";
cout<<endl;
return 0;
7. MT1207 倒金字塔
(1)题目描述
请编写一个简单程序,输入正整数n,输出n行W字金字塔。(第一行左边不空格)
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n;
cin >> n;
for(int i=0;i<n;i++)
for(int j=0;j<i;j++)
cout<<" ";
for(int t=n;t>i;t--)
cout<<"W ";
cout<<endl;
return 0;
8. MT1208 菱形
(1)题目描述
请编写一个简单程序,输入正整数n,输出n行W字菱形。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n;
cin >> n;
for(int i=1;i<n;i++)
for(int j=0;j<n-i;j++)
cout<<" ";
for(int t=0;t<i;t++)
cout<<"W ";
cout<<endl;
for(int i=0;i<n;i++)
for(int j=0;j<i;j++)
cout<<" ";
for(int t=n;t>i;t--)
cout<<"W ";
cout<<endl;
return 0;
9. MT1209 沙漏
(1)题目描述
请编写一个简单程序,输入正整数n,输出W字沙漏。(第一行左边不空格)
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n;
cin >> n;
for(int i=0;i<n;i++)
for(int j=0;j<i;j++)
cout<<" ";
for(int t=n;t>i;t--)
cout<<"W ";
cout<<endl;
for(int i=1;i<=n;i++)
for(int j=0;j<n-i;j++)
cout<<" ";
for(int t=0;t<i;t++)
cout<<"W ";
cout<<endl;
return 0;
10. MT1210 弗洛伊德三角
(1)题目描述
输入正整数N。输出N行的弗洛伊德三角形
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n,k=1;
cin >> n;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++) cout<<k++<<" ";
cout<<endl;
return 0;
11. MT1211 给定数字的乘法表
(1)题目描述
输出给定数字N的乘法表。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n;
cin >> n;
for(int i=1;i<=9;i++)
cout<<n*i<<" ";
return 0;
12. MT1212 乘法表
(1)题目描述
请编写一个简单程序,输出九九乘法表。输入n,就输出乘法表到n的地方。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n;
cin >> n;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
cout<<i<<"*"<<j<<"="<<i*j;
if(i*j>=10) cout<<" ";
else cout<<" ";
cout<<endl;
return 0;
13. MT1213 x个a
(1)题目描述
求a+aa+aaa+...+a...a (x个a) ,x和a由键盘输入。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int x,a,sum=0,temp=0,i=1;
cin >> x >> a;
while(i<=x)
temp = temp*10+a;
sum+=temp;
i++;
cout<<sum;
return 0;
小结(一)
经典范例:MT1213
14. MT1214 上三角矩阵
(1)题目描述
输入3X3的整型矩阵A,输出对应的上三角矩阵。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int nums[9],n=3;
for(int i=0;i<9;i++) cin >> nums[i];
for(int i=0;i<n;i++)
for(int j=i*n;j<(i+1)*n;j++)
if(j%n>=i)
cout<<nums[j];
else cout<<"0";
if(j<i*n+n-1) cout<<" ";
cout<<endl;
return 0;
15. MT1215 下三角矩阵
(1)题目描述
输入3X3的整型矩阵A,输出对应的下三角矩阵。
格式
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int nums[9],n=3;
for(int i=0;i<9;i++) cin >> nums[i];
for(int i=0;i<n;i++)
for(int j=i*n;j<(i+1)*n;j++)
if(j%n<=i)
cout<<nums[j];
else cout<<"0";
if(j<i*n+n-1) cout<<" ";
cout<<endl;
return 0;
16. MT1216 数组加法
(1)题目描述
有两个数组A和B,他们都有N个整型元素,编写一个函数,实现他们的“加法”"把对应元素相加,结果放在C数组的对应位置,输出C数组。
格式
样例1
备注:
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int a[1000],b[1000],n;
cin >> n;
for(int i=0;i<n;i++)
cin >> a[i];
for(int i=0;i<n;i++)
cin >> b[i];
for(int i=0;i<n;i++)
cout << a[i]+b[i]<<" ";
return 0;
17. MT1217 矩阵乘法
(1)题目描述
输入3X4整型矩阵A和4X3的整型矩阵B,计算A*B,放到矩阵C里面,输出矩阵C。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int dp[1000][1000],bucket[1000][1000],cnt,ans;
for(int i=1;i<=3;i++)
for(int j=1;j<=4;j++)
cin >> dp[i][j];
for(int i=1;i<=4;i++)
for(int j=1;j<=3;j++) cin >> bucket[i][j];
cnt=1;
for(int i=1;i<=3;i++)
for(int k=1;k<=3;k++)
ans=0;
for(int j=1;j<=4;j++) ans+=dp[i][j] * bucket[j][k];
printf("%3d ",ans);
if(cnt%3==0) printf("\\n");
cnt++;
return 0;
18. MT1218 斐波那契数列
(1)题目描述
请编写一个简单程序,求斐波那契数列前10个数
名词解析(点此处!!!)
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int Fibonacci(int n)
if(n==1 || n==2) return 1;
else return Fibonacci(n-1)+Fibonacci(n-2);
int main( )
int n=10,num=0;
for(int i=1;i<=n;i++)
num=Fibonacci(i);
cout<<num<<" ";
return 0;
19. MT1219 斐波那契数列II
(1)题目描述
判断数字N(N<29)是否为斐波那契数列中出现的数,输出YES或者NO。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int x=1,y=1,z=0,n;
cin >> n;
while(y<n)
z = x+y;
x=y;
y=z;
if(y==n) cout<<"YES";
else cout<<"NO";
return 0;
20. MT1220 斐波那契数列III
(1)题目描述
输入一个正整数N (N<50),输出斐波那契数列前N项。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
bool fei(int n)
int x=1,y=1,z=0;
while(y<n)
z = x+y;
x=y;
y=z;
if(y==n) return true;
else return false;
int main( )
int n,cmt;
cin >> n;
cout<<1<<" ";
for(int i=1;cmt<n-1;i++)
if(fei(i))
cout<<i<<" ";
cmt++;
return 0;
21. MT1221 小码哥考完咯
(1)题目描述
有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13...,计算前20个分数的总和
格式
样例1
(2)参考代码
import java.util.Scanner;
import java.util.*;
class Main
public static void main(String[] args)
double i=1.0,j=2.0;
int count =0;
double sum=0;
while(count<20)
double ret=j/i;
double tmp=i;
i=j;
j=tmp+j;
sum+=ret;
count++;
System.out.println(String.format("%.2f", sum));
小结(二)
经典例题:MT1214
22. MT1122 等差数列
(1)题目描述
求等差数列前N项的级数之和。不考虑不合理的输入等特殊情况。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n,m,k,s=0;
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
s+=m;
m+=k;
cout<<s;
return 0;
23. MT1223 N是什么
(1)题目描述
给定一系列数字3、10、21、36....输入正整数N,输出上述序列的第N个值。从N=1开始计数。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n;
cin >>n;
cout<<n*(2*n+1);
return 0;
24. MT1224 棋盘
(1)题目描述
求一个N*N棋盘中的方块总数。
格式
样例1
备注:
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
int ans=0;
signed main( )
int n;
cin >> n;
while(n--) ans+=pow(n+1,2);
cout<<ans<<endl;
return 0;
25. MT1225 复杂分数
(1)题目描述
编写程序连续输入a1、a2、...、a5,计算下列表达式的值并输出。本题不考虑输入0,负数或者其他特殊情况。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
double a[6];
int main( )
for(int i=1;i<=5;i++) cin>>a[i];
double ans=a[4]/a[5];
ans=1+ans;
ans=1+a[3]/ans;
ans=1+a[2]/ans;
ans=1+a[1]/ans;
printf("%.6f",ans);
return 0;
26. MT1126 解不等式
(1)题目描述
n为正整数,求解n满足不等式:
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int a,b,n=1;
bool f=true;
cin >> a>>b;
double tmp=0,sum=0;
while(true)
tmp+=1.0/n;
sum+=1.0/tmp;
if(sum>=b)
cout<<n-1;
break;
if(f&&sum>a)
cout<<n<<" ";
f=false;
n++;
return 0;
27. MT1227 宝宝爬楼梯
(1)题目描述
楼梯有N个台阶(N<=10),宝宝想爬到顶部。她一次可以爬1级或2级台阶。统计宝宝可以用多少种方式爬到达顶端。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int GetNValue(int n)
if(n<=1) return 1;
if(n==2) return 2;
return GetNValue(n-1)+GetNValue(n-2);
int main( )
int n;
cin>>n;
cout<<GetNValue(n)<<endl;
return 0;
28. MT1128 宝宝抢糖果
(1)题目描述
宝宝们一起抢N个糖果(N<=10),手快的宝宝可以抢到2个糖果,手慢的只能抢到一个糖果。统计糖果可以多少种方式被瓜分。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int GetNValue(int n)
if(n<=1) return 1;
if(n==2) return 2;
return GetNValue(n-1)+GetNValue(n-2);
int main( )
int n;
cin>>n;
cout<<GetNValue(n)<<endl;
return 0;
29. MT1229 搬家公司
(1)题目描述
N件家具(N<=10),力气大的一次可以搬2件,力气小的一次只能搬1件。统计家具可以用多少种方式搬完。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int GetNValue(int n)
if(n<=1) return 1;
if(n==2) return 2;
return GetNValue(n-1)+GetNValue(n-2);
int main( )
int n;
cin>>n;
cout<<GetNValue(n)<<endl;
return 0;
30. MT1130 圆周率
(1)题目描述
编写一个程序,使用以下公式计算PI的近似值PI=4 (1-1/3+1/5-1/7+1/9...)。括号中的最后一项应小于十的负六次方。
格式
样例1
(2)参考代码
import java.util.Scanner;
import java.util.*;
class Main
public static void main(String[] args)
int max=1000;
double sum=0;
int flag=-1;
for(int n=0;n<=max;n++)
flag*=-1;
sum+=flag*1.0/(2*n+1);
System.out.println(String.format("%.2f", 4*sum));
31. MT1231 圆周率II
(1)题目描述
由近似公式: T/2=2/1 2/3 4/3 4/56/56/7 8/7 * 8/9...,求圆周率(精确到10的-6次方)。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
cout<<3.14;
return 0;
32. MT1232 数字和
(1)题目描述
请编写一个简单程序,求一个数的各位数字之和。比如输入123,输出1+2+3的和6.
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n,len,sum=0;
cin>>n;
string s;
s=to_string(n);
len=s.size();
for(int i=0;i<len;i++)
sum=s[i]-0+sum;
cout<<sum;
return 0;
33. MT1233 数字之和
(1)题目描述
求一个自然数n中各位数字之和(n由用户输入)。不考虑负数等特殊情况。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n,len,sum=0;
cin>>n;
string s;
s=to_string(n);
len=s.size();
for(int i=0;i<len;i++)
sum=s[i]-0+sum;
cout<<sum;
return 0;
34. MT1234 一个数字
(1)题目描述
输入一个非负整数N,重复将其所有数字相加,直到结果只有一个数字,输出这个数字,输出最小列宽3列。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int add(int n)
int len,sum=0;
string s;
s=to_string(n);
len=s.size();
for(int i=0;i<len;i++)
sum=s[i]-0+sum;
return sum;
int main( )
int n,tmp=0;
cin>>n;
tmp=add(n);
while(tmp>=10)
tmp=add(tmp);
printf("%3d",tmp);
return 0;
35. MT1235 回文数字
(1)题目描述
请编写一个简单程序,检查数字是否为回文。像12521,123321,这样的从左向右读和从右向左读是一样的数字是回文数字。
格式
样例1
(2)参考代码
#include<iostream>
using namespace std;
int main()
bool hui(int n);
int a;
while(cin>>a)
if(hui(a))
cout<<"Y"<<endl;
else
cout<<"N"<<endl;
return 0;
bool hui(int n)
unsigned i=n;
unsigned m=0;
while(i>0)
m=m*10+i%10;
i/=10;
return m==n;
36. MT1236 回文
(1)题目描述
输入正整数N,判断N的各位数字之和是否为回文数。(注:回文数是一个在反转时保持不变的数。比如121,7等。)不考虑不合理的输入等特殊情况。
格式
样例1
(2)参考代码
#include<iostream>
using namespace std;
int main()
bool hui(int n);
int a,len=0,sum=0;
while(cin>>a)
string s=to_string(a);
len=s.size();
for(int i=0;i<len;i++)
sum+=s[i]-0;
if(hui(sum))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
return 0;
bool hui(int n)
unsigned i=n;
unsigned m=0;
while(i>0)
m=m*10+i%10;
i/=10;
return m==n;
37. MT1237 六六大顺
(1)题目描述
输入正整数N,输出N以内(含N),6的倍数,并且包含6的数字,比如36等。
格式
样例1
(2)参考代码
def main():
#code here
N = int(input())
s = list()
for n in range(N+1):
if n%6 == 0 and 6 in str(n):
s.append(str(n))
print( .join(s))
pass
if __name__ == __main__:
main();
38. MT1238 幸运数字3
(1)题目描述
输入正整数N,输出N以内(含N) 3的倍数,或者包含3的数字,比如13,32等。
格式
样例1
(2)参考代码
def main():
#code here
N = int(input())
s = list()
for n in range(1,N+1):
if n%3 == 0 or 3 in str(n):
s.append(str(n))
print( .join(s))
pass
if __name__ == __main__:
main();
39. MT1239 自恋性数
(1)题目描述
请编写一个简单程序,判断自恋性数。如果一个正整数等于其各个数字的立方和,则称该数为自恋性数(亦称为阿姆斯特朗数)
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n,m,sum=0;
cin>>n;
m=n;
while(m>0)
int t=m%10;
sum+=t*t*t;
m/=10;
if(n==sum) cout<<"Y";
else cout<<"N";
return 0;
40. MT1240 好多自恋性数
(1)题目描述
请编写一个简单程序,输入正整数n,输出n以内自恋性数。如果一个正整数等于其各个数字的立方和,则称该数为自恋性数(亦称为阿姆斯特朗数)
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
void prt(int n)
for(int i=1;i<n;i++)
int flag=i,sum=0;
string str = to_string(i);
int num = str.length();
while(num!=0)
sum+=pow(flag%10,3);
flag = flag/10;
num--;
if(sum==i) cout<<i<<" ";
int main( )
int n;
cin >>n;
prt(n);
return 0;
小结(三)
典型范例:
MT1223、MT1224、MT1226、MT1227、MT1230
MT1235、MT1240
41. MT1241 大数
(1)题目描述
输入一个数字N,编写一个程序,用该数字的所有数字重组一个最大数字。不考虑负数,0等特殊情况。注意:给定的数字可能非常大,因此输入被视为字符串。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
string s;
cin >> s;
int num[10]=0;
int len=s.size();
for(int i=0;i<len;i++)
num[s[i]-0]++;
for(int i=9;i>=0;i--)
for(int j=num[i];j>0;j--) cout<<i;
return 0;
42. MT1242 三个非负整数
(1)题目描述
给定一个正整数N,将其分解为3个非负整数的累加和,并统计出这样做的方法数。比如2,有2种分解方法:
0+ 0+2=2 (0+2+0= 22+0+0=2可以和左边等式看做同一种)
0+1+1=2(1+1+0=21+0+1= 2可以和左边等式看做同一种)
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int ans,f[10];
void work(int x,int d,int lim)
if(d==2)
if(x>lim) return ;
else ++ans; return ;
for(int i=lim;i>=0;i--)
f[d] = i;
work(x-i,d+1,min(i,x-i));
int main( )
int n;
cin >> n;
work(n,0,n);
cout<<ans<<endl;
return 0;
43. MT1243 四个正整数
(1)题目描述
输入一个正整数N,计算将N表示为四个正整数之和(比如5= 1+1+1+2)的可能方法的数量。
格式
样例1
(2)参考代码
def main():
#code here
n = int(input())
s = 0
for i in range(1,n):
for j in range(i,n):
for k in range(j,int((n-i-j)/2)+1):
s+=1
print(s)
pass
if __name__ == __main__:
main();
44. MT1244 减到0
(1)题目描述
输入两个正整数A和B,重复从较大整数中减去较小整数直到其中一个变为0,输出所需的步骤数。比如5和13。(5,13)->(5,8)->(5,3)->(2,3)->(2,1)->(1,1)->(1,0)—共需要减6次。不考虑不合理的输入等特殊情况。
格式
样例1
(2)参考代码
def main():
#code here
x=list(map(int,input().split()))
i=0
while True:
if (x[0]==0) | (x[1]==0):
break
if x[0]>=x[1]:
x[0]=x[0]-x[1]
i=i+1
else:
x[1]=x[1]-x[0]
i=i+1
print(i)
pass
if __name__ == __main__:
main();
45. MT1245 五年花光
(1)题目描述
银行利息月息为0.553%。某人五年中每年年底都取出1000元,到第五年时刚好取完。求存入的钱应是多少?
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
double sum1=0,x=0.00553;
for(int a=1;a<=5;a++) sum1=(sum1+1000)/(1+x*12);
printf("%.2lf",sum1);
return 0;
46. MT1246 存入的钱
(1)题目描述
假设银行利息月息为0.63%。某人将一笔钱存入银行,打算在今后五年中每年年底都取出1000元,到第五年时刚好取完。求存入的钱应是多少?
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
double sum1=0,x=0.0063;
for(int a=1;a<=5;a++) sum1=(sum1+1000)/(1+x*12);
printf("%.2lf",sum1);
return 0;
47. MT1247 存10年钱
(1)题目描述
银行利息月息为0.58%。某人10年中每年年底都取出1000元,到第10年时刚好取完。求存入的钱应是多少?
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
double sum1=0,x=0.0058;
for(int a=1;a<=10;a++) sum1=(sum1+1000)/(1+x*12);
printf("%.2lf",sum1);
return 0;
48. MT1248 吃桃
(1)题目描述
猴子摘了一堆桃,第一天吃了一半又多吃了一个,第二天把剩下的吃了一半,又多吃了一个。以后每天都吃了一半零一个。到第10天,只剩下一个,问原本又多少个桃子。
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n=10,x=1;
for(int i=0;i<9;i++) x=(x+1)*2;
cout<<x;
return 0;
49. MT1249 练兵
(1)题目描述
兽人族的首领很聪明,总是先让士兵3人一排站队,再5人一排重新站队,最后再7人一排,他只用看看队尾人数就知道今天有多少人迟到了。输入3个非负整数a,b,c表示每种队形队尾的人数(a<3,b<5,c<7),计算总人数,无解则输出-1。总人数在10到100之间。
格式
样例1
(2)参考代码
def main():
#code here
a,b,c=list(map(int,input().split( )))
f=-1
for i in range(10,101):
if i%3 == a and i%5==b and i%7==c:
f=i
break
print(f)
pass
if __name__ == __main__:
main();
50. MT1250 阶梯
(1)题目描述
科学家出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。编写程序求这条阶梯共有多少阶?
格式
样例1
(2)参考代码
#include<bits/stdc++.h>
using namespace std;
int main( )
int n=7;
while(1)
if(n%2==1&&n%3==2&&n%5==4&&n%6==5)
cout<<n;
break;
n+=7;
return 0;
小结(四)
-
整除范例:MT1241、MT1242、MT1243、MT1244、MT1250
结语
希望这些题能帮助到大家,一起进步,祝愿每一个算法道路上的“苦行僧”们,都能够历经磨难,终成正果,既然选择了这条路,走到了这里,中途放弃,岂不是太过可惜?
愿你的结局,配得上你一路的颠沛流离。
以上是关于算法竞赛入门码蹄集新手村600题(MT1201-1250)的主要内容,如果未能解决你的问题,请参考以下文章