TNND,哪位大神懂C++的帮我看看
南京邮电大学吧
全部回复
仅看楼主
level 9
单昭i 楼主
http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1007
这是题目要求
我的代码:
#include <iostream>
using namespace std;
int main(){
     int n;
     cin>>n;
     if(n>100||n<1){
         return -1;
     }
     for(int i=6;i<=n;i++){
         for(int j=i-1;j>1;j--){
             for(int k=j-1;k>1;k--){
                 for(int l=k-1;l>1;l--){
                     if(i*i*i==(j*j*j+k*k*k+l*l*l)){
                         cout<<"Cube = "<<i<<", Tripe = ("<<l<<","<<k<<","<<j<<")\n";
                     }
                 }
             }
         }
     }
     return 0;
}
输出一模一样,怎么就说我是错的呢
2012年07月06日 18点07分 1
level 6
没看到有时间和内存限制么亲,你这种方法有人不会么- -。。。。。。。囧
2012年07月06日 18点07分 2
level 9
单昭i 楼主
呃……不是内存限制的问题……当我没问呃……
2012年07月06日 18点07分 3
level 12
a肥c ++很好啊?求指导。。。
2012年07月06日 18点07分 4
level 6
参考下面的代码吧
#include <iostream>  
#include <cmath>  
using namespace std;  
const int maxnum=100;  
double cube[maxnum];  
int main()  
{  
for (int i=0;i<maxnum;i++)  
{  
   cube[i]=i*i*i;  
}  
void show(int n);  
int n;  
cout<<"Please input a number (0,"<<maxnum<<"]:";  
cin>>n;  
if (n<=0 || n>maxnum) return -1;  
for (int i=1;i<=n;i++)  
   show(i);  
return 0;  
}  
void show(int n)  
{  
double a,b,c,d;  
a=cube[n];  
for (int i=2;i<n;i++)  
{  
   b=cube[i];  
   for (int j=i;j<n;j++)  
   {  
    c=cube[j];  
    d=a-b-c;  
    for (int k=j;k<n;k++)  
    {  
     if (d==cube[k])  
     {  
      cout<<"Cube = "<<n<<", Triple = ("<<i<<","<<j<<","<<k<<")\n";  
     }  
    }  
   }  
}  
}   
2012年07月06日 18点07分 5
level 6
这是算法问题
2012年07月06日 18点07分 6
level 6
时间。。我看了,,,内存要求很低。。应该没问题的。
2012年07月06日 18点07分 7
level 10
[惊讶]求指导
2012年07月06日 18点07分 8
level 6
把立方数先算好了然后取出来用好了。。。。。。递归和迭代的效率差距啊。。亲看看算法导论吧。。ACM考察的是算法不是语法[勉强]
2012年07月06日 18点07分 9
level 9
单昭i 楼主
我上周日才学的C++~~~ls表讲这么深奥的啊……偶暂时的目标是熟练编程[88]
顺便问一下,ls的学长的那段代码通过测试了吗?
2012年07月06日 18点07分 10
level 9
三条边不可能相同吗亲?
2012年07月06日 18点07分 11
level 9
单昭i 楼主
根据智商哥的提醒,改了下,还是通过不了~~真BT的检测系统
#include <iostream>
using namespace std;
int main(){
     int n;
     cin>>n;
     if(n>100||n<1){
         return -1;
     }
     for(int i=6;i<=n;i++){
         for(int j=i-1;j>1;j--){
             for(int k=j;k>1;k--){
                 for(int l=k;l>1;l--){
                     if(i*i*i==(j*j*j+k*k*k+l*l*l)){
                         cout<<"Cube = "<<i<<", Triple = ("<<l<<","<<k<<","<<j<<")\n";
                     }
                 }
             }
         }
     }
     return 0;
}
2012年07月06日 18点07分 12
level 8
#include <stdio.h>
int cube[100];
void show(int n)
{
int a,b,c,d;
int i,j,k;
a=cube[n];
for ( i=2;i<n;i++)
{
   b=cube[i];
   for ( j=i;j<n;j++)
   {
    c=cube[j];
    d=a-b-c;
    for ( k=j;k<n;k++)
    {
     if (d==cube[k])
     {
      printf("Cube = %d, Triple = (%d,%d,%d)\n",n,i,j,k);
     }
    }
   }
}
}
int main()
{
     int i,n;
     scanf("%d",&n);
for (i=1;i<=n;i++)
{
   cube[i]=i*i*i;
}
for(i=1;i<=n;i++)
   show(i);
return 0;
}

2012年07月06日 18点07分 13
level 6
。。。。。。。。能过就见鬼了。。。。你用全世界效率最低的方法。。。。方法都贴出来了不看
2012年07月06日 18点07分 14
level 8
O(N*N*N)
2012年07月06日 18点07分 15
level 8
孩子,买本算法设计的书来看看吧
2012年07月06日 18点07分 16
level 9
单昭i 楼主
[揉脸]不是不看呃……只不过迭代的代码简单,做ACM的题目只是因为ACM题目不需要太多的工程,所以先熟练熟练编程呃
回ls,基础书还么看完呢……
2012年07月06日 18点07分 17
level 9
单昭i 楼主
不过还是谢谢各位的帮助哈[Love]
2012年07月06日 18点07分 18
level 6
好吧。。。说正事。。。楼主能帮我的电脑清灰么[惊讶]
2012年07月06日 18点07分 19
level 7
就算不看算法导论。。。数据结构总该看看吧
2012年07月06日 18点07分 20
1 2 尾页