OpenJudge计算概论-完美立方【暂时就想到了枚举法了】
/*=====================================
完美立方
总时间限制: 1000ms 内存限制: 65536kB
描述
a的立方 = b的立方 + c的立方 + d的立方为完美立方等式。例如12的立方 = 6的立方 + 8的立方 + 10的立方 。编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),使得a的立方 = b的立方 + c的立方 + d的立方,其中a,b,c,d 大于 1, 小于等于N。
输入
正整数N (N≤100)
输出
每行输出一个完美立方,按照a的值,从小到大依次输出。当两个完美立方等式中a的值相同,则依次按照b、c、d进行非降升序排列输出,即b值小的先输出、然后c值小的先输出、然后d值小的先输出。
样例输入
24
样例输出
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) 解析:
4层for循环可以做,枚举法
a的循环范围从2到N
b的循环范围也是从2到N
c的循环范围从b开始到N
d的循环范围从c开始到N 输出结果要注意严格按照输入输出案例里面的空格设置方式来设置。
======================================*/
#include<stdio.h>
int main()
{
int a,b,c,d,N;
int a3,b3,c3,d3;
scanf("%d",&N);
for(a=;a<=N;a++)
{
a3=a*a*a;
for(b=;b<=N;b++)
{
b3=b*b*b;
if(a3<b3) break;
for(c=b;c<=N;c++)
{
c3=c*c*c;
if(a3<b3+c3) break;
for(d=c;d<=N;d++)
{
d3=d*d*d;
if(a3==b3+c3+d3)
{
printf("Cube = %d, Triple = (%d,%d,%d)\n",a,b,c,d);
}
}
}
}
}
return ;
}
看看下面的三重for循环的代码:
#include<stdio.h>
#include<math.h>
int main(int argc, char *argv[])
{
int a,b,c,d,n,t;
scanf("%d",&n);
for(a=;a<=n;a++)
{
for(b=;b<=n;b++)
{
for(c=b;c<=n;c++)
{
t=a*a*a-b*b*b-c*c*c;
d=(int)(pow(t,1.0/)+0.5);
if(d*d*d==t&&d>c&&d<=n)
{
printf("Cube = %d, Triple = (%d,%d,%d)\n",a,b,c,d);
}
}
}
}
return ;
}
注意题目要求的输出顺序比较特殊,所以下面这段代码是错误的:
#include<stdio.h>
#include<math.h>
int main(int argc, char *argv[])
{
int a,b,c,d,n,a3;
scanf("%d",&n);
for(b=;b<=n;b++)
{
for(c=b;c<=n;c++)
{
for(d=c;d<=n;d++)
{
a3=b*b*b+c*c*c+d*d*d;
a=pow(a3,1.0/)+0.5;
if(a*a*a==a3&&a>&&a<=n)
{
printf("Cube = %d, Triple = (%d,%d,%d)\n",a,b,c,d);
}
}
}
}
return ;
}
错误的代码
运行结果:
Cube = , Triple = (,,)
Cube = , Triple = (,,)
Cube = , Triple = (,,)
Cube = , Triple = (,,)
Cube = , Triple = (,,)
Cube = , Triple = (,,)
Cube = , Triple = (,,)
请按任意键继续. . .
OpenJudge计算概论-完美立方【暂时就想到了枚举法了】的更多相关文章
- OpenJudge计算概论-取石子游戏
OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...
- Openjudge计算概论——数组逆序重放【递归练习】
/*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...
- OpenJudge计算概论-计算书费
/*============================================== 计算书费 总时间限制: 1000ms 内存限制: 65536kB 描述 下面是一个图书的单价表: 计算 ...
- OpenJudge计算概论-最高的分数
/*======================================================== 最高的分数 总时间限制: 1000ms 内存限制: 65536kB 描述 孙老师 ...
- OpenJudge计算概论-比饭量【枚举法、信息数字化】
/*====================================================================== 比饭量 总时间限制: 1000ms 内存限制: 655 ...
- OpenJudge 2810(1543) 完美立方 / Poj 1543 Perfect Cubes
1.链接地址: http://bailian.openjudge.cn/practice/2810/ http://bailian.openjudge.cn/practice/1543/ http:/ ...
- Openjudge计算概论-角谷猜想
/*===================================== 角谷猜想 总时间限制: 1000ms 内存限制: 65536kB 描述 所谓角谷猜想,是指对于任意一个正整数,如果是奇数 ...
- OpenJudge计算概论-字符串最大跨距
/*====================================================================== 字符串最大跨距 总时间限制: 1000ms 内存限制: ...
- Openjudge计算概论-求序列中的众数
/*===================================== 求序列中的众数 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个长度为N的整数序列 (不多于128 ...
随机推荐
- 爆破unabexcm5fl(已补上注册机)
系统 : Windows xp 程序 : unabexcm5fl 程序下载地址 :http://pan.baidu.com/s/1pJYaNUV 要求 : 爆破 使用工具 :OD 可在“PEDIY C ...
- 第二个Sprint冲刺第三天
讨论地点:宿舍 讨论成员:邵家文.李新.朱浩龙.陈俊金 燃尽图: 待解决的问题: 需要将主界面重新布局,下面的是原始主界面: 想实现一个统计的功能,今天就完成了一个基本的布局: 开发感悟:爱在何方
- latex 小结
1 no file .bbl http://blog.csdn.net/zhedasuiyuan/article/details/9223637 另外,你可能有多个 .bbl.目前的做法是,在控制台上 ...
- LeetCode Generate Parentheses 构造括号串(DFS简单题)
题意: 产生n对合法括号的所有组合,用vector<string>返回. 思路: 递归和迭代都可以产生.复杂度都可以为O(2n*合法的括号组合数),即每次产生出的括号序列都保证是合法的. ...
- Windows 10下Chrome不能启动的问题
不能启动了 Chrome突然不能启动了,点击图标也没反应,打开任务管理器,发现点击图标后,Google Ghrome短暂地出现,随即消失. 如何解决? 解决方案 打开安装目录: C:\Program ...
- JAVA学习之Ecplise IDE 使用技巧(2)第二章:键盘小快手,代码辅助
上一篇:JAVA学习之Ecplise IDE 使用技巧(1)第一章:我的地盘我做主,工作空间 第二章:键盘小快手,代码辅助 内容包括: 第一:显示行号 如何设置行号:Ecplice菜单Windows& ...
- Think Python - Chapter 8 - Strings
8.1 A string is a sequenceA string is a sequence of characters. You can access the characters one at ...
- SpringMVC 产品笔记
假设我是springMVC的产品经理,我会怎么做? 恩,题目太大,能力不够,缓一缓. http://jinnianshilongnian.iteye.com/category/231099 http: ...
- Linux发行分支时间轴
官网:http://futurist.se/gldt/ 全图png:http://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.png 全图sv ...
- db2 字符串转换 数字
今天使用聚合函数的时候 发现 varchar类型的是不可用的,所以呢就开始想办法解决 用到了转换函数cast(s.score as bigint) 然后有一个问题就是如果数据为空的话就会发生转换错误. ...