简单粗暴地开他个十层循环(洛谷P2089题题解,Java语言描述)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了简单粗暴地开他个十层循环(洛谷P2089题题解,Java语言描述),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1489字,纯文字阅读大概需要3分钟。
内容图文
题目要求
分析
既然是一定在1-3个,10种都要有,那么比起琢磨一种复杂算法,暴力求解是很好的思路啊!
既然是Java的连接,用StringBuilder就会较好。
不能直接打印StringBuilder,因为输出格式要求是先打印counter,所以用个LinkedList是不错的选择,指针费点结构性开销但能保证不用反复malloc和resize,我觉得比较合适啊。
代码比较暴力(十层循环),看代码的时候做好心理准备哈!
AC代码(Java语言描述)
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt(), counter = 0;
scanner.close();
List<StringBuilder> list = new LinkedList<>();
for (int a = 1; a <= 3; a++) {
for (int b = 1; b <= 3; b++) {
for (int c = 1; c <= 3; c++) {
for (int d = 1; d <= 3; d++) {
for (int e = 1; e <= 3; e++) {
for (int f = 1; f <= 3; f++) {
for (int g = 1; g <= 3; g++) {
for (int h = 1; h <= 3; h++) {
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (a + b + c + d + e + f + g + h + i + j == num) {
counter++;
StringBuilder str = new StringBuilder();
str.append(a).append(" ").append(b).append(" ").append(c)
.append(" ").append(d).append(" ").append(e).append(" ")
.append(f).append(" ").append(g).append(" ").append(h)
.append(" ").append(i).append(" ").append(j);
list.add(str);
}
}
}
}
}
}
}
}
}
}
}
System.out.println(counter);
for (StringBuilder str : list) {
System.out.println(str);
}
}
}
进阶的JFarmer
发布了355 篇原创文章 · 获赞 614 · 访问量 3万+
私信
关注
内容总结
以上是互联网集市为您收集整理的简单粗暴地开他个十层循环(洛谷P2089题题解,Java语言描述)全部内容,希望文章能够帮你解决简单粗暴地开他个十层循环(洛谷P2089题题解,Java语言描述)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。