题目描述:
小华按照地图去寻宝,地图上被划分成 m 行和 n 列的方格,横纵坐标范围分别是 [0, n−1]和[0, m-1]。在横坐标和纵坐标的数位之和不大于k的方格中存在黄金(每个方格中仅存在一克黄金),但横坐标和纵坐标之和大于k的方格存在危险不可进入。小华从入口(0,0)进入,任何时候只能向左,右,上,下四个方向移动一格。请问小华最多能获得多少克黄金?
输入描述:
坐标取值范围如下:
0<=m<=50
0<=n<=50
k的取值范围如下:
0<=k<=100
输入中包含3个字数,分别是m,n,k
输出描述:
最多能获得多少克黄金
示例1
输入:
40 40 18
输出:
1484
说明:
当k为18时,小华能够进入方格(10,10),因为1+0+1+0 = 2。 但是,他不能进入方格(36,38),因为3+6+3+8 = 20
代码
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int m = in.nextInt();
int n = in.nextInt();
int k = in.nextInt();
int count=0;//黄金克
//因为m和n最大50,只考虑到十位
for(int i=0;i<m;i++){
int sumM=0;//m的位数之和
sumM=i/10+i%10;
if(sumM>k){
break;
}
for(int j=0;j<n;j++){
int sumN=0;//n的位数之和
sumN=j/10+j%10;
if(sumN>k){
break;
}
if(sumM+sumN<=k){
count++;
}
}
}
System.out.println(count);
}
}