蓝桥杯刷题C-跳跃、数值求和、年号字串(第五天12.18)

1.跳跃:就是设置一个数组,然后用来储存所在位置跟哪个位置的权值是最大的就可以了。

代码如下:

#include <stdio.h>
#include <stdlib.h>
int max(int a, int b)
{
    return a > b ? a : b;
}
int main(int argc, char *argv[])
{
  // 请在此输入您的代码
  int n,m;
  int sum=0;
  scanf("%d%d",&n,&m);
  int a[100][100],i,j;
  for(i=1;i<=n;i++){
  for(j=1;j<=m;j++)
  {
    scanf("%d",&a[i][j]);
  }
}
  int b[100][100];
  b[1][1]=a[1][1];
  for(i=1;i<=n;i++){
    for(j=1;j<=m;j++){
      if(i-1>=1)b[i][j]=max(b[i][j],b[i-1][j]+a[i][j]);
      if(i-2>=1)b[i][j]=max(b[i][j],b[i-2][j]+a[i][j]);
      if(i-3>=1)b[i][j]=max(b[i][j],b[i-3][j]+a[i][j]);
      if(j-1>=1)b[i][j]=max(b[i][j],b[i][j-1]+a[i][j]);
      if(j-2>=1)b[i][j]=max(b[i][j],b[i][j-2]+a[i][j]);
      if(j-3>=1)b[i][j]=max(b[i][j],b[i][j-3]+a[i][j]);
    }
  }
  printf("%d\n",b[n][m]);
  return 0;
}

2.数值求和:保留四位数的话,除于10000就好了,如果把数算出来的话,会超内存的,然后用个·迭代就好了

代码如下:

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

int main(int argc, char *argv[])
{
  // 请在此输入您的代码
  int sum,i,j,t1,t2,t3;
  t1=1;
  t2=1;
  t3=1;
  for(i=4;i<=20190324;i++)
  {
    sum=(t1+t2+t3)%10000;
    t1=t2;
    t2=t3;
    t3=sum;
  }
  printf("%d",sum);
  return 0;
}

3.年号字串:用个递归,数字周期一样,26一周期而已

代码如下:

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

void nhzc(int a){
  if(a>26)
    nhzc(a/26);
    printf("%c",'A'+(a%26)-1);
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值