蓝桥杯——递增序列和货物摆放

在这里插入图片描述


前言

多多练习


一、递增序列

在这里插入图片描述
在这里插入图片描述

解题思路:
在这里插入图片描述

代码实现:
当然我的这个代码也不是很正确
发这道题就是向大家集思广益,我的就只作为一个参考啦~

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    
    
  // 请在此输入您的代码
  int count=0;

  char str[30][50];
  for(int i=0;i<30;i++){
    
    
    for(int j=0;j<50;j++){
    
    
      scanf("%c",&str[i][j]);
    }
  }

  for(int i=0;i<30;i++){
    
    
    for(int j=0;j<50;j++){
    
    
      //横
      for(int l=j+1;l<50;l++){
    
    
        if(str[i][j]<str[i][l])
            count++;
      }
      //纵
      for(int l=i+1;l<30;l++){
    
    
        if(str[i][j]<str[l][j])
            count++;
      }
      //右下
      for(int l=i+1,m=j+1;l<30&&m<50;l++,m++){
    
    
        if(str[i][j]<str[l][m])
            count++;
      }
       //右上
      for(int l=i-1,m=j+1;l>=0&&m<50;l--,m++){
    
    
        if(str[i][j]!=str[l][m])
            count++;
      }
       //左下
      for(int l=i+1,m=j-1;l<30&&m>=0;l++,m--){
    
    
        if(str[i][j]!=str[l][m])
            count++;
      }
    }
  }
  

  printf("%d",count);
  return 0;
}

二、货物摆放

在这里插入图片描述

代码实现:
此处代码不是我写的,是大佬白露写滴~
拿过来参考了一下,哈哈

在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>

int main()
{
    
    
    long long arr[3000],i,n=2021041820210418;
    long long a,b,c;
    int count=0,m=0;
    for(i=1;i*i<=n;i++){
    
    
      if(n%i==0){
    
    //如果n能被i整除
          arr[m]=i;//就把i存到arr里面
          m++;//arr数组向后移一位
          if(n/i!=i){
    
    //如果n不是i的平方就把n/i得到的约数也放到arr里面
              arr[m]=n/i;//把n/i之后的数放到arr里面
              m++;//arr数组向后移一位
          }
      }
    }
    for(a=0;a<m;a++){
    
    //L的值
        for(b=0;b<m;b++){
    
    //W的值
            for(c=0;c<m;c++){
    
    //H的值
                if(arr[a]*arr[b]*arr[c]==n) count++;//如果他们的积是n就count+1
            }
        }
    }
    printf("%d",count);//输出count的值
    return 0;
}

总结

蓝桥杯的题目果然都很有难度啊!
要多多练习啦!

猜你喜欢

转载自blog.csdn.net/mdjsmg/article/details/133830263
今日推荐