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;
}