| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3374 人关注过本帖
标题:求教完美立方的简单方法
取消只看楼主 加入收藏
星火gavin
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:170
注 册:2011-11-5
结帖率:90.48%
收藏
已结贴  问题点数:20 回复次数:1 
求教完美立方的简单方法
/*时间限制: 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
) */
#include <stdio.h>
#include <math.h>
int main()
{
    int i,n,b,c,a,t;
    scanf("%d",&n);
    for(i=6;i<=n;i++)
    {
        for(a=n-1;a>=i/2;a--)
        {
            for(b=a-1;b>=i/2;b--)
            {
                for(c=b-1;c>=2;c--)
                {
                    if(pow(i,3)==pow(a,3)+pow(b,3)+pow(c,3))
                    {
                        printf("Cube = %-d, Triple = (%d,%d,%d)\n",i,c,b,a);                     
                         }       }     }     }       }
感觉自己做的太麻烦了,运行时间还长,想求教一下简单的思路或者方法;
搜索更多相关主题的帖子: 立方 内存 简单方法 正整数 
2012-04-04 16:06
星火gavin
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:170
注 册:2011-11-5
收藏
得分:0 
回复 3楼 beyondyf
嘿嘿,版主就是版主,厉害呀,哎,看了上次那个代码我才发现对循环语句了解的太少了,以前用的太死板,真学习啦。今天这道题在:http://poj.上,希望版主多多帮忙。
2012-04-05 06:57
快速回复:求教完美立方的简单方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011832 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved