目录
?
#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
#define N 100
int arr[N];
int n;
int mem[N];
int st[N];
int main()
{
scanf("%d",&n);
if( (n % 4 == 0 && n % 100 != 0) || n % 400 == 0 )
cout<<"yes";
else cout<<"no";
return 0;
}
#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
#define N 100
int a[N];
int n;
int mem[N];
int st[N];
int func(int x) // 求逆序
{
int tmp = 0;
while(x)
{
tmp = tmp * 10 + x % 10;
x /= 10;
}
return tmp;
}
void func_spe(int x,int &sum) // 特殊回文数,每位相加等于输入的数字
{
int tmp = 0;
while(x)
{
sum += x % 10;
x /= 10;
}
}
//回文数
int main()
{
cin>>n;
for(int i = 10000; i <= 999999; i ++)
{
int sum = 0;
func_spe(i,sum);
if(sum == n && func(i) == i)
cout<<i<<endl;
}
return 0;
}
#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
#define N 100
int arr[N];
int n;
int mem[N];
int st[N];
int dfs(int x)
{
}
int main()
{
//定义一个9行9列的二维整型数组
int data[35][35];
int i = 0;
int j = 0;
cin>>n;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
//数组所有元素都赋值为1
data[i][j] = 1;
}
}
//dp
for (i = 1; i < n; i++)
{
for (j = 1; j < i; j++)
{
data[i][j] = data[i-1][j] + data[i-1][j-1];
}
}
//输出数组所有元素
for (i = 0; i < n; i++)
{
for (j = 0; j <= i; j++)
{
printf("%d ", data[i][j]);
}
printf("\n");
}
return 0;
}
#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
#define N 100
int arr[N];
int n,m;
int mem[N];
int st[N];
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("%c",'A'+abs(i-j));
}
printf("\n");
}
return 0;
}
问题描述
有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币。
输入格式
第一行输入一个正整数n。
以下n行描述该方格。金币数保证是不超过1000的正整数。
输出格式
最多能拿金币数量。
#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
#define N 1010
int a[N][N];
int n,m;
int mem[N];
int st[N];
int dp[N][N];
int dfs(int x)
{
}
/*
样例输入
3
1 3 3
2 2 2
3 1 2
样例输出
11
*/
int main()
{
cin>>n;
for(int i = 1;i <= n; i ++)
{
for(int j = 1;j <= n; j ++)
{
cin>>a[i][j];
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + a[i][j];
}
}
printf("%d",dp[n][n]);
return 0;
}
?