周六1900C++班级-2022-11-26-多重循环练习

比赛链接

1001 : C语言实验题――素数

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int ans = 0; //记录100-200之间素数的个数 
    for(int n=100;n<=200;n++) //根据题目意思,循环n从100到200 
    {
        int sum = 0; //设定sum为0,用来求当前n这个数的因子个数
        for(int i=1;i<=n;i++) //循环1到n来判断数字n有多少个因子
        {
            if(n%i==0) //如果n%i==0证明i是n的因子
                sum++; 
        } 
        if(sum==2){ //刚好只有2个因子 
            ans++; //素数个数+1 
        }
    }
    cout<<ans<<endl; //输出素数个数
    for(int n=100;n<=200;n++) //根据题目意思,循环n从100到200 
    {
        int sum = 0; //设定sum为0,用来求当前n这个数的因子个数
        for(int i=1;i<=n;i++) //循环1到n来判断数字n有多少个因子
        {
            if(n%i==0) //如果n%i==0证明i是n的因子
                sum++; 
        } 
        if(sum==2){ //刚好只有2个因子 
            cout<<n;
            ans--;
            if(ans>0)cout<<" ";
        }        
    }
     return 0;
}
View Code

 

1002 : n钱买百鸡

#include<bits/stdc++.h>
using namespace std;
int main()
{ //n钱买百鸡 
    int n;
    cin>>n;
    for(int i=0;i<=n/5;i++) //公鸡 
    {
        for(int j=0;j<=n/3;j++) //母鸡 
        {
            for(int k=0;k<=3*n;k+=3) //小鸡 
            {
                if(5*i+3*j+k/3==n && i+j+k==100)
                {
                    cout<<i<<" "<<j<<" "<<k<<endl;
                }
            }
        }
    }
     return 0;
}
View Code

 

1003 : 零钱兑换

 

#include<bits/stdc++.h>
using namespace std;
int main()
{ //兑换零钱 
    int n,sum = 0;
    cin>>n;
    for(int i=0;i<=n/5;i++)
    {
        for(int j=0;j<=n/10;j++)
        {
            for(int k=0;k<=n/20;k++)
            {
                if(5*i+10*j+20*k==n) 
                    sum++;
            }
        }
    }
    cout<<sum;
     return 0;
}
View Code

 

1004 : 寻找完全数

 

#include<bits/stdc++.h>
using namespace std;
int main()
{ //寻找完美数 
    int n;
    cin>>n;
    for(int i=2;i<=n;i++)
    {
        int sum = 0; //用来计算因子数和
        for(int j=1;j<i;j++)
            if(i%j==0)
                sum+=j;
        if(sum==i)
            cout<<i<<endl; 
    }
     return 0;
}
View Code

 

1005 : 明明的幸运数

 

#include<bits/stdc++.h>
using namespace std;
int main()
{//明明的幸运数 
    int n,sum=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        if(i%3==0)sum++;
        else{
            int m = i;
            while(m>0)//分离每位数
            {
                if(m%10==3) //通过%10来判断m的个位是否是3
                {
                    sum++;
                    break;
                } 
                m/=10; //舍弃个位数 
            } 
        }
    }
    cout<<sum;
     return 0;
}
View Code

 

1006 : 数字游戏

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,f = 0; //f等于0默认yuyu不用拍手
    cin>>n;
    for(int i=n;i<=1000;i+=3)
    {
        int m = i;
        while(m>0)
        {
            if(m%10==4 || m%10==7){
                f = 1; //标记着yuyu需要拍手 
                cout<<i<<endl;
                break;
            }
            m/=10;
        }
    } 
    if(f==0)cout<<"Smile";
     return 0;
}
View Code

 


1007 : 含k个3的数

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int m,k;
    cin>>m>>k;
    int sum = 0; //用来计算是否有k个3
    int f1 = 0,f2 = 0; //f1判断是否是被19整除,f2判断是否有k个3
    if(m%19==0) f1 = 1;
    while(m>0)
    {
        if(m%10==3)sum++; //m%10判断个位数是否为3 
        m/=10; //整除10去掉个位数 
    } 
    if(sum==k)f2 = 1;
    if(f1==1 && f2==1)cout<<"YES";
    else cout<<"NO";
     return 0;
}
View Code

 


1008 : 素数判断

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n)
    {
        int sum=0;
        for(int i=1;i<=n;i++)
        {
            if(n%i==0)
            sum++;
            }        
            if(sum==2)  cout<<"Yes"<<endl;
            else cout<<"No"<<endl;
        
            
    }
    return 0;
}
View Code

 

posted @ 2022-11-27 09:33  CRt0729  阅读(44)  评论(0编辑  收藏  举报