蓝桥练习题之杨辉三角形、查找、字母图形、数列排序、审美问题、素因子去重

5 篇文章 0 订阅
3 篇文章 0 订阅

1、杨辉三角形

代码:

#include<iostream>
using namespace std;
int main()
{
    int i,j,n,a[100][100];
    cin>>n;
    for(i=0;i<n;i++)
    {
        for(j=0;j<=i;j++)
        {
            if(j<i&&j>0)
            {
                a[i][j]=i;
                a[i][j+1]=a[i][j];
            }
            else
                a[i][j]=1;
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
}

运行结果:

2、查找整数

代码:

#include<iostream>
using namespace std;
int main()
{
    int i,n,a[1000],m;
    cin>>n;
    for(i=0;i<n;i++)
        cin>>a[i];
    cin>>m;
    for(i=0;i<n;i++)
    {
       if(a[i]==m)
            {cout<<i+1<<endl;
            break;}
       if(i==(n-1))
        cout<<"-1"<<endl;
    }

}

运行结果:

(ps:在定义数组的时候,一定要定义1000,我之前定义了a[100],得分是60分,后来我改成1000,就运行出来了,证明之前机器运行的时候内存不够)

3、数列排序

代码:

#include<iostream>
using namespace std;
int main()
{
    int i,n,a[1000],sum=0;
    cin>>n;
    if(n>0)
    {
       for(i=0;i<n;i++)
      {
          cin>>a[i];
          sum+=a[i];
      }
    int max=a[0];
    int min=a[0];
    for(i=0;i<n;i++)
    {
        if(a[i]>max)
        {
            max=a[i];
        }
    }
    cout<<max<<endl;
    for(i=0;i<n;i++)
    {
        if(a[i]<min)
        {
            min=a[i];
        }
    }
    cout<<min<<endl;
    cout<<sum<<endl;
    }
    else
        cout<<n;
}

运行结果:

4、字母图形

代码:

#include<iostream>
using namespace std;
int main()
{
    int i,j,n,m,k=0;
    char a[100][100];
    cin>>n;
    cin>>m;
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            if((j-i)>=0)
                a[i][j]='A'+(j-i);
            if((i-j)>=0)
                a[i][j]='A'+(i-j);
        }
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            cout<<a[i][j];
        }
        cout<<endl;
    }


}

程序结果:

5、审美

题目:《审美的历程》课上有n位学生,帅老师展示了m幅画,其中有些是梵高的作品,另外的都出自五岁小朋友之手。老师请同学们分辨哪些画的作者是梵高,但是老师自己并没有答案,因为这些画看上去都像是小朋友画的……老师只想知道,有多少对同学给出的答案完全相反,这样他就可以用这个数据去揭穿披着皇帝新衣的抽象艺术了

代码:

#include<string.h>
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
    int n,m,i,j,k,sum[10000]={0},count=0;
    cin>>n;cin>>m;
    bool a[n][m];
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            cin>>a[i][j];
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
        {
            sum[i]+=a[i][j];
        }
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(sum[i]+sum[j]==m)
            for(k=0;k<m;k++)
                {
                    if(a[i][k]==a[j][k])
                        break;
                    if(k==m-1)
                        count++;
                }
        }
    }
    cout<<count;
    return 0;
}

运行结果:

6、素因子去重

题目分析:把一个你输入的数字分解成几个素数的乘积,挑出素数,再相乘得到结果

基本思路:先找到因数,从因数中判断是否为素数,再直接相乘,不用判断是否重复,因为是一直加一的

#include<string.h>
#include<stdio.h>
#include<iostream>
using namespace std;
int prime(int n)
{
    int s;
    if(n==2)
        return 1;
    for(s=2;s<=n;s++)
    {
        if(n%s==0)
            return 0;
        if(s==n-1)
            return 1;
    }
}
int main()
{
    int i=2,n,p=1,j=0;
    cin>>n;
    for(i=2;i<n/2;i++)
    {
        if(n%i==0&&prime(i)==1)
            p*=i;
    }
    cout<<p;
    return 0;

}


运行结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值