关注
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// 若n自身就是一个完全平方数
int tempNum = (int)(Math.sqrt(n));
if (tempNum * tempNum == n) {
System.out.println(n);
return ;
}
// 键盘输入的n不是完全平方数
// 布尔变量flag标识n可否由若干个(不重复的)完全平方数相加得到
boolean flag = false;
Set<Integer> set = new HashSet<>();
while (n >= 1) {
// 对n开方
int temp = (int)(Math.sqrt(n));
if (temp * temp == n) {
// 构成n的若干完全平方数,是不允许重复的。否则也就不可能输出NA了.
// 比如n,如果允许完全平方数重复,它肯定可以由n个1相加得到,不可能输出NA
if (set.contains(n)) {
break;
}
flag = true;
}
set.add(temp * temp);
n -= temp * temp;
}
if (flag) {
List<Integer> list = new ArrayList<>(set);
// 排序
Collections.sort(list);
for (int i = 0; i < list.size(); i++) {
if (i != list.size() - 1) {
System.out.print(list.get(i) + " ");
} else {
System.out.println(list.get(i));
}
}
}
if (!flag) {
System.out.println("NA");
}
}
} 楼主可以参考下我的代码,写得不一定优雅、简洁,但我自己测试的时候,能通过绝大多数样例。 存在问题:样例输入41,我的输出是1 4 36,正确输出应该是16 25 。 我正在review代码,寻求将这个问题解决,如果有老哥看出问题所在,请指点一下,谢谢。
查看原帖
点赞 3
相关推荐
查看21道真题和解析 点赞 评论 收藏
分享
04-09 10:28
北京邮电大学 golang 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 简历上写了AI项目,怎么才能拉开差距?6232
- 2... 我用一场重病,换来了与大厂的和解6166
- 3... 不会AI Coding真的不行吗?4593
- 4... 字节跳动-中国交易与广告面经3020
- 5... Claude Code 压缩机制曝光,这波真的有点猛啊!2021
- 6... 战报分享——2026年前端社招找工作感想1591
- 7... 字节跳动-Agent开发实习生 一面(45分钟):1357
- 8... 学AI+测试力竭的感觉谁懂,WDF越学感觉自己越菜!1206
- 9... 百度Agent前端一面 超级轻松面1121
- 10... 一家我看不上的初创公司,老板愿意给我开9k实习工资,甚至亲手写了2000多字的offer邮件给我891
正在热议
更多
# 我的实习日记 #
4177921次浏览 33336人参与
# 京东美团大战,你怎么看? #
192626次浏览 925人参与
# 第3届现代汽车Code Faster急速编程挑战赛 #
37327次浏览 547人参与
# 牛客AI文生图 #
27348次浏览 276人参与
# 城市生存手册 #
10496次浏览 133人参与
# 实习最晚的一次下班是几点 #
41150次浏览 180人参与
# 你的房租占工资的比例是多少? #
105618次浏览 915人参与
# 入职第一天,你准备什么时候下班 #
130228次浏览 533人参与
# 如果人间有后悔药 #
15653次浏览 314人参与
# 入职第五天,你被拉进了几个工作群 #
33943次浏览 85人参与
# 柠檬微趣笔试 #
6128次浏览 68人参与
# 双非本科的出路是什么? #
238969次浏览 1672人参与
# 网易游戏笔试 #
18877次浏览 107人参与
# 哪些公司对双非友好 #
245923次浏览 1293人参与
# 秋招感动瞬间 #
129345次浏览 572人参与
# 你觉得面试是靠实力还是靠运气 #
37972次浏览 416人参与
# 你现在的工作,是“成长”还是“消耗”? #
34276次浏览 259人参与
# 用一句话形容你的团队氛围 #
54482次浏览 316人参与
# 听到哪句话就代表面试稳了or挂了? #
280950次浏览 1802人参与
# 你以为的实习VS真实的实习 #
148774次浏览 769人参与
# 卷__卷不过你们,只能卷__了 #
71375次浏览 807人参与