当前位置: 首页 > news >正文

一道基础计算题卡在 40 分,求助判题规则问题

最近在参加一个算法比赛,遇到一道看似非常基础的计算题,但无论怎么修改代码,始终无法通过全部测试用例,目前最高只能拿到 40 分,特来求助。


一、题目描述

输入两个浮点数:

  • 半径 r
  • 高度 h

要求输出以下五个结果(均保留两位小数):

  1. 圆周长 C1 = 2πr
  2. 圆面积 Sa = πr²
  3. 球表面积 Sb = 4πr²
  4. 球体积 Va = 4/3πr³
  5. 圆柱体积 Vb = πr²h

输出格式:


二、第一版代码(得分:20 分)

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double r = sc.nextDouble();
        double h = sc.nextDouble();
        double pi = 3.14;
        System.out.printf("C1=%.2f%n"2.0 * pi * r);
        System.out.printf("Sa=%.2f%n", pi * r * r);
        System.out.printf("Sb=%.2f%n"4.0 * pi * r * r);
        System.out.printf("Va=%.2f%n"4.0 * pi * r * r * r / 3.0);
        System.out.printf("Vb=%.2f%n", pi * r * r * h);
    }
}

问题:只能通过部分测试点,得分 20 分。


三、第二版代码(得分:40 分)

考虑可能是精度问题,将输出改为 BigDecimal 控制:

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Scanner;

public class Main {
    private static String fmt(double x) {
        return BigDecimal.valueOf(x)
                .setScale(2, RoundingMode.HALF_EVEN)
                .toPlainString();
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double r = sc.nextDouble();
        double h = sc.nextDouble();
        double pi = 3.14;

        double c1 = 2.0 * pi * r;
        double sa = pi * r * r;
        double sb = 4.0 * pi * r * r;
        double va = 4.0 * pi * r * r * r / 3.0;
        double vb = pi * r * r * h;

        System.out.println("C1=" + fmt(c1));
        System.out.println("Sa=" + fmt(sa));
        System.out.println("Sb=" + fmt(sb));
        System.out.println("Va=" + fmt(va));
        System.out.println("Vb=" + fmt(vb));
    }
}

结果:得分提升到 40 分,但仍然无法通过全部测试。

我现在感觉是比赛官方的OJ系统有问题。


四、求助

希望有经验的同学或参加过类似 OJ 的同学帮忙分析。

如果有能够 AC 的代码或明确结论,非常感谢分享。


如果后续定位出问题原因,我会整理一版最终正确解法。

http://www.jsqmd.com/news/501158/

相关文章:

  • 苍穹外卖核心功能模块深度解析:从表结构到业务逻辑
  • 2026年重庆全屋定制品牌推荐:别墅大宅高端生活品质与艺术审美融合之选 - 十大品牌推荐
  • 2024-2026年塑封机品牌推荐:学校档案资料塑封耐用品牌及型号对比分析 - 十大品牌推荐
  • Vue项目常见坑点解析:购物车状态管理那些事儿
  • 【信号分析实战】从RML2016.10a数据集解析IQ信号的时域、星座与频谱特征
  • 2026通州狗狗训练哪家好?专业正规+优质条件服务机构全解析 - 品牌2026
  • AzurLaneLive2DExtract:Live2D模型提取工具的核心价值与创新应用
  • Super Qwen与MySQL数据库集成实战:构建智能语音问答系统
  • 光伏逆变器锁相环优化指南:DDSRF双解耦如何提升相位精度5倍
  • VSCode安装灵毓秀-牧神-造相Z-Turbo开发插件教程
  • 重庆全屋定制品牌如何选不踩坑?2026年靠谱推荐大户型收纳强且设计感佳方案 - 十大品牌推荐
  • Qwen3-ASR-1.7B端侧部署:手机端实时语音识别实现
  • OpenCV与Unity3D的完美结合:在3D WebView中实现高级视频处理
  • 1.48米高3D打印AI设计部件现身TCT,Leap71创始人将到访华曙高科
  • 避开杀毒软件的耳目:Windows冷注入+DLL混淆的5个实用技巧
  • 2024-2026年重庆全屋定制品牌推荐:现代简约风格环保健康热门品牌与真实评价对比 - 十大品牌推荐
  • Janus-Pro-7B对比传统方法:在文本分类任务上的性能表现
  • 老旧Mac设备升级指南:使用OpenCore Legacy Patcher开源工具实现系统焕新
  • 从零构建移动Linux工作站:在红米2(msm8916)上部署Debian与主线内核的实践指南
  • Unity全景视频开发实战:AVProVideo在Android上的性能优化与避坑指南
  • 快马平台五分钟速建Jenkins流水线原型,AI助力搞定CI/CD初始配置
  • YOLOv8模型热力图可视化实战:从Grad-CAM原理到论文级应用
  • Janus-Pro-7B嵌入式AI应用实战:基于STM32F103C8T6的智能交互系统
  • HC32F460 Timer0实战:如何用XTAL32时钟源实现精准0.5秒LED闪烁(附完整代码解析)
  • 办公设备效率评估,对比软件硬件效率,替换卡顿工具,提高日常工作速度,
  • CSP-J2023公路题解:贪心算法实战与优化技巧(附完整代码)
  • EVA-02在计算机组成原理教学中的应用:将抽象概念重构为生动比喻
  • 为LumiPixel Canvas Quest开发WebUI界面:Gradio快速搭建指南
  • 车载系统升级迫在眉睫,MCP 2026适配窗口仅剩18个月?工信部新规倒逼下,92%车企尚未完成TARA合规验证!
  • Vue实战:打造优雅的页面加载动画与数据请求loading效果