文章目录
前言
多多练习
一、递增序列
解题思路:
代码实现:
当然我的这个代码也不是很正确
发这道题就是向大家集思广益,我的就只作为一个参考啦~
c
#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;
}
二、货物摆放
代码实现:
此处代码不是我写的,是大佬白露写滴~
拿过来参考了一下,哈哈
c
#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;
}
总结
蓝桥杯的题目果然都很有难度啊!
要多多练习啦!