简单题:小M的奶酪问题| 豆包MarsCode AI刷题

149 阅读6分钟

题目要求

小M在集市上买了一公斤奶酪回家。然而,在小M不在的时候,小F偷偷地偷走了 A/B公斤的奶酪。现在,小M想知道他还剩下多少奶酪。要求答案以分数的形式表示,并且分数的分母必须为B。

解题思路

  1. 求剩余奶酪量:由于小M最初有1公斤奶酪,而小F偷走了A/B公斤,因此剩余的奶酪为 1−A/B。
  2. 分数形式:为了得到以 B 为分母的分数,我们将1公斤表示为 B/B。这样,剩余的奶酪可以表达为: B−A/B
  3. 输出结果:最终结果就是 B−A/B的形式,即分子为 B−A,分母为 B。

代码实现

以下是具体的代码实现,代码通过简单的数学运算求得分子和分母,然后返回字符串形式的结果。

public class Main {
    public static String solution(int A, int B) {
        // write code here
        int ramain=B-A;
        //  String s=String.valueOf(ramain);
        //  String b=String.valueOf(B);
        String re= ramain +"/"+ B;
        return re;
    }
    public static void main(String[] args) {
        System.out.println(solution(2, 7).equals("5/7"));
        System.out.println(solution(1, 3).equals("2/3"));
        System.out.println(solution(3, 5).equals("2/5"));
    }
}

代码详解

  • int remain = B - A;:计算剩余奶酪的分子部分。
  • return remain + "/" + B;:以字符串形式返回剩余奶酪量的分数。

知识总结

在完成这道题的过程中,我学习了以下几个知识点:

  • 分数表示方法:学会了如何将1表示成以任意数为分母的分数,比如1公斤表示为 B/B公斤。
  • 字符串拼接:使用简单的字符串拼接可以将数值结果转化为字符串形式返回。
  • Java字符串操作:在输出字符串结果时,通过 + 操作符实现了数字和字符串的合并,形成符合题目要求的格式。

个人思考

这道题应该是我刷题以来感觉最简单的一道题目了,只需要使用简单的字符串拼接返回结果就行。要说难点的话,可能就是分子的计算了。

工具运用

学习分享:如何高效利用豆包MarsCode AI与其他资源进行刷题提升

最近,我一直在使用豆包MarsCode AI进行刷题练习,经过一段时间的尝试,逐渐形成了自己的一套高效学习方法。由于编程基础较为薄弱,尤其是在面对复杂的算法和数据结构时经常感到吃力,MarsCode AI成了我非常重要的辅助工具。在这里,和大家分享一下我是如何结合豆包MarsCode AI与其他学习资源来提升自己刷题能力的,希望对同样有困惑的朋友有所帮助。


1. 分析和学习薄弱知识点:善用网络资源查漏补缺

在刷题过程中,遇到不理解的概念是常有的事情,特别是算法中的一些基本原理或数据结构的操作。因为基础较薄弱,很多时候我甚至无法理解题目的要求或其中的算法思路。为了解决这些问题,我会利用网络资源来深入学习,确保对概念和原理有一个清晰的理解。

  • 查找算法网站:在遇到难点时,我常会查找一些专注于算法的学习网站,像是LeetCode、GeeksforGeeks或中文的力扣。这些网站提供的算法题解析和用户讨论能够帮助我理解算法的实际应用和不同思路。
  • 通过示例理解概念:有时候单纯阅读算法解释效果并不理想,这时我会找一些例题或教程,尤其是有图解的内容,通过具体的例子帮助理解抽象概念,逐步掌握后再回到题目。

在确保自己对算法或数据结构原理有了基础掌握后,我会继续回到题目,重新审视题目需求并尝试自己写代码解答。


2. 代码生成与优化:利用豆包MarsCode AI的解析功能

当前我的刷题水平正处于一个较尴尬的阶段,通常能够大概理解题目的思路,却时常卡在代码实现上。即使写出了初步代码,但代码往往显得冗长、不简洁,有时还存在效率问题。在这种情况下,MarsCode AI的解析功能对我帮助很大。

  • 获取标准解法:我会先尝试解答题目,写出自己的初步代码,如果卡住了,就让MarsCode AI生成一个完整的解答。通过分析它的代码,我可以更好地理解正确的实现方式,并且找到自己解法中的不足之处。
  • 代码优化建议:MarsCode AI往往会给出代码优化建议,比如使用更高效的数据结构、去掉冗余代码、简化嵌套结构等。这些建议不仅帮助我写出更简洁的代码,也让我学会了在日常写代码时如何提高效率。
  • 通过提问深入理解代码:当AI生成的代码中存在自己不理解的部分时,我会继续向MarsCode AI提问,要求它解释关键逻辑或变量的作用,甚至要求它举例说明每个步骤的运行效果。这种逐步拆解、逐步分析的方式,帮助我对代码的理解更加透彻,同时也让我逐渐掌握了某些复杂问题的解决方案。

3. 结合学习资源和AI优化代码:形成自己的刷题节奏

在完成一系列题目后,我也逐渐总结出一套高效的刷题节奏,将豆包MarsCode AI的帮助最大化:

  • 先尝试自己解题:遇到新题时,我先尽量理清思路并独立解答。这不仅可以帮助提升自己的分析能力,也能让自己更清楚自己的短板在哪里。
  • 求助AI优化与分析:当我完成代码后,会利用AI来检查是否有优化空间。AI生成的代码中,往往有许多更为简洁的写法和更高效的实现方式。分析这些优化点,我可以更清晰地看到自己代码中的不足,并学习如何在实际代码中改进。
  • 形成错题集和笔记:在刷题过程中,我会记录一些自己难以理解或写错的题目,整理成错题集,复习时再回到这些题目上。MarsCode AI生成的解释和优化建议也会被我整理到学习笔记中,成为日后复习时的宝贵资料。

4. 借助AI多维度学习:将AI和其他资源结合使用

MarsCode AI不仅是一个刷题工具,它还帮助我在多方面完善学习思路。为充分利用这个AI,我会将它和其他学习资源结合起来,帮助自己更深入地理解算法问题。

  • 参考AI生成的不同解法:MarsCode AI不仅会给出标准解答,还会推荐一些可供选择的解题方法。这些不同的解法让我意识到同一个问题可以有多种解决方案,有时甚至让我找到比自己之前写的更有效的方法。
  • 线上课程与教材补充:对于AI生成的代码,如果还有疑惑,我会查阅经典教材或线上课程,尤其是深奥的算法题。比如数据结构的相关内容,我会参考《算法导论》之类的教材,逐步深入理解。