一个二维数组第一行和第一列所有元素的值均为 1,其他每个元素等于其左边和上边的元素之和。
给定二维数组的大小,求这个二维数组所有元素的和。
输入一行,包含两个整数 n, m,分别表示数组的行数和列数。
输出一个整数,表示所有元素的和。
样例输入:3 4
样例输出:34
对于所有评测数据,1<=n<=10, 1<=m<=10
求大佬发代码
#include<stdio.h>
#include<string.h>
int main(){
int n,m;
int sum=0;
int a[20][20]={0};
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
a[i][1]=1;//第一行赋值1
for(int i=1;i<=m;i++)
a[1][i]=1;//第一列赋值1
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i!=1&&j!=1){//第一列和第一行除外
//每个元素等于其左边和上边的元素之和
a[i][j]=a[i-1][j]+a[i][j-1];
}
}
}
for(int i=1;i<=n;i++){//求和
for(int j=1;j<=m;j++){
sum+=a[i][j];
printf("%d ",a[i][j]);//打印 (测评时可以注释掉)
}
puts("\n");//换行 (测评时可以注释掉)
}
printf("%d",sum);//输出和
return 0;
}