算法竞赛入门码蹄集新手村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;

小结(四)

  1. 整除范例:MT1241、MT1242、MT1243、MT1244、MT1250

结语

希望这些题能帮助到大家,一起进步,祝愿每一个算法道路上的“苦行僧”们,都能够历经磨难,终成正果,既然选择了这条路,走到了这里,中途放弃,岂不是太过可惜?

愿你的结局,配得上你一路的颠沛流离。

以上是关于算法竞赛入门码蹄集新手村600题(MT1201-1250)的主要内容,如果未能解决你的问题,请参考以下文章

算法竞赛入门码蹄集新手村600题(MT1401-1450)

算法竞赛入门码蹄集新手村600题(MT1201-1250)

算法竞赛入门码蹄集新手村600题(MT1551-1600)

算法竞赛入门码蹄集新手村600题(MT1101-1150)

算法竞赛入门码蹄集新手村600题(MT1301-1350)

算法竞赛入门码蹄集进阶塔335题(MT2286-2290)