这道题明显是一道暴力。

暴力枚举每一个 \(a, b, c, d\)

所以我就写了一个暴力。每个 \(a, b, c, d\) 都从 \(1\) 枚举到 \(100\)

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define line cout << endl
using namespace std;
int lf(int x) {
return x * x * x;
}
int main() {
for (int a = 1; a <= 100; a++) {
for (int b = 1; b <= 100; b++) {
for (int c = 1; c <= 100; c++) {
for (int d = 1; d <= 100; d++) {
if (lf(a) == lf(b) + lf(c) + lf(d)) {
cout << "Cube = " << a << ", Triple = (" << b << "," << c << "," << d << ")";
line;
}
}
}
}
}
return 0;
}

结果,成功的 WA 掉了(((


为什么?

我们仔细观察题目给出的前几个样例:

Cube = 6, Triple = (3,4,5)
Cube = 12, Triple = (6,8,10)
Cube = 18, Triple = (2,12,16)
Cube = 18, Triple = (9,12,15)
Cube = 19, Triple = (3,10,18)
Cube = 20, Triple = (7,14,17)
Cube = 24, Triple = (12,16,20)

而再看上面的程序输出的前几个:

Cube = 6, Triple = (3,4,5)
Cube = 6, Triple = (3,5,4)
Cube = 6, Triple = (4,3,5)
Cube = 6, Triple = (4,5,3)
Cube = 6, Triple = (5,3,4)
Cube = 6, Triple = (5,4,3)
Cube = 9, Triple = (1,6,8)
Cube = 9, Triple = (1,8,6)
Cube = 9, Triple = (6,1,8)
Cube = 9, Triple = (6,8,1)
Cube = 9, Triple = (8,1,6)
Cube = 9, Triple = (8,6,1)

发现什么问题了吗? 相信 全谷最聪明的你 已经发现了问题。

仔细观察 Cube = 6 的情况:

我的程序:

Cube = 6, Triple = (3,4,5)
Cube = 6, Triple = (3,5,4)
Cube = 6, Triple = (4,3,5)
Cube = 6, Triple = (4,5,3)
Cube = 6, Triple = (5,3,4)
Cube = 6, Triple = (5,4,3)

正确答案:

Cube = 6, Triple = (3,4,5)

有可能题目没有翻译清晰

发现每个 Cube 只需要输出一组,那么我们就可以改变一下循环的初始状态。

将 \(a,b\) 从 \(2\) 到 \(100\) 枚举,将 \(c\) 从 \(b\) 到 \(100\) 枚举,将 \(d\) 从 \(c\) 到 \(100\) 枚举。

最后放上代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define line cout << endl
using namespace std;
int lf(int x) {//立方的函数
return x * x * x;
}
int main() {
// freopen("1.out", "w", stdout);
for (int a = 2; a <= 100; a++) {
for (int b = 2; b <= 100; b++) {
for (int c = b; c <= 100; c++) {
for (int d = c; d <= 100; d++) {
if (lf(a) == lf(b) + lf(c) + lf(d)) {
cout << "Cube = " << a << ", Triple = (" << b << "," << c << "," << d << ")";
line;
}
}
}
}
}
return 0;
}

最新文章

  1. C#设计模式(3)——工厂方法模式
  2. VS使用WinRAR软件以命令行方式打包软件至一个exe
  3. Jquery Datatables 请求参数及接收参数处理
  4. 【转载】关于Linux Shell 特殊字符
  5. SAP-GR/IR的理解
  6. WebService学习笔记一
  7. 爬虫的自我解剖(抓取网页HtmlUnit)
  8. URL List
  9. secure CRT 介绍
  10. SPOJ 4487 Splay 基本操作
  11. 如何用DOS 链接mysql
  12. poj1716 Integer Intervals(差分约束)
  13. RH033读书笔记(4)-Lab 5 File Permissions
  14. Servlet学习三:不允许直接访问jsp处理方式一过滤器
  15. [系统启动]Printk与sched_clock_init的一点分析
  16. oracle AWR性能监控报告生成方法
  17. C语言位操作的算法
  18. [Ubuntu] 14.04 关闭桌面
  19. C#中的抽象类、抽象方法和虚方法
  20. centos7编译安装zabbix的错误

热门文章

  1. ESP8266 鼓捣记 - 入门(环境搭建)
  2. UI自动化中无头浏览器的应用
  3. mysql之优化器、执行计划、简单优化
  4. fio的配置使用
  5. CTDB与LVS搭建集群
  6. ERP应收应付进阶操作与子流程--开源软件诞生29
  7. 新鲜出炉!春招-面试-阿里钉钉、头条广告,美团面经分享,看我如何拿下offer!
  8. 轻松将CAD文件转为加密的PDF文件
  9. 如何使用MindManager更改思维导图布局
  10. Go-Web编程_表单_0x02_验证表单的输入