This is an YY Problem(oj水题+从左下角到右上角(把图像向左旋转90度)进行暴力查找+画画图就出结果)

本文深入解析了一道Java编程竞赛题目,通过一个具体的算法问题,展示了如何使用Java进行输入读取、条件判断和循环控制,以解决数学比例计算的问题。文章详细介绍了代码逻辑,包括变量初始化、条件判断和循环迭代过程,适合对算法和Java编程感兴趣的读者。

代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        int T = reader.nextInt();
        while (T-- > 0) {
            int n = reader.nextInt();
            int m = reader.nextInt();
            double r = 0.0;
            if (m > n) {
                int t = m;
                m = n;
                n = t;
            }
            r = n * 1.0 / m;/// 大于等于1
            int i = 1;
            int j = 1;
            double s = 0.0;
            int c = 0;
            while (i <= n && j <= m) {
                s = i * 1.0 / j;
                if (s > r) {
                    j++;
                    c++;
                } else if (s == r) {
                    i++;
                    j++;
                    c++;
                } else if (s < r) {
                    i++;
                    c++;
                }
            }
            System.out.println(c);
        }
        reader.close();
    }
}

### 关于东华大学OJ平台中二维数组从右上到左下遍历的解思路 对于给定的二维数组,要实现从右上角至左下的遍历方式,通常涉及对角线方向的数据访问模式。这种特定路径上的元素处理可以通过调整索引来完成。 在提供的代码片段中,存在一些逻辑用于计算两条特殊对角线上元素乘积与商之和的操作[^1]: ```cpp for(j=0;j<m;j++) { x1=a[j][j]; // 这就是左上到右下的元素值,易找 for(i=0;i<m;i++) { if((m-1)==i+j) { x2=a[i][j];//这是左下到右上的元素 break; } } } ``` 然而,这段代码主要关注的是两个主对角线(即从左上到右下以及从右上到左下),而不是整个矩阵按指定路线遍历的方法。为了真正实现从右上往左下的遍历并获取相应位置的数值,可以采用如下方法: #### 方法一:基于行列坐标的转换 通过改变循环结构来适应新的遍历顺序。具体来说,在外层循环控制当前所处的斜率k(即`row + col = const`),内层则迭代满足此条件的所有(row, col)组合。 ```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; // 输入方阵大小n*n int matrix[n][n]; // 填充matrix... for(int k = 0; k < 2 * n - 1; ++k){ for(int row = max(0, k-(n-1)); row <= min(k, n-1); ++row){ int col = k - row; cout << "Element at (" << row << ", " << col << ") is: " << matrix[row][col]<< endl; } } return 0; } ``` 这种方法能够有效地按照从右上向左下的轨迹读取每一个元素,并且适用于任意尺寸的方形矩阵。 #### 方法二:利用辅助数据结构存储结果后再输 另一种策略是创建一个新的列表或其他容器类型用来保存沿所需路径提取来的元素,最后再统一打印来。这种方式可能更直观但也稍微增加了空间复杂。 上述两种方案都可以很好地解决如何在一个二维数组里执行从右上方移动到左下方的任务。选择哪种取决于实际应用场景和个人偏好。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值