| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2315 人关注过本帖
标题:这题算法的难度好高,希望有高手解答
只看楼主 加入收藏
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
收藏
得分:0 
太恐怖了,这种程序调试时间为多少哦~

土冒
2005-04-17 00:26
激情依旧
Rank: 1
等 级:新手上路
威 望:2
帖 子:524
专家分:0
注 册:2005-4-4
收藏
得分:0 
我不是高手
我的思想是这样的。你说他的3次方和4次方刚好有0~9组成。我就想到用数组和求余。一个数组用来对比。也就是我后面的b[10]。而a[10]就是存放我求余的数。当2个数组完全相等的时候就满足题目的条件了。我是用穷举法来算的。我写的不好。算法的时间复杂度大。可读性差。希望有高手帮我改的更好(衷心的希望)。但是我不想让那些灌水的人随便帮我改改。那样不如不改好(我要就不要做。要做就要做好。随便帮我谢谢有什么用呢。而且又不知道是不是正确的。我做的都上机验证的,力求准确。起码我不会误人。。。。。很多人在论坛上骂我狂傲。我的确是有点狂傲,这个我承认。但是灌水狂人那样随便说几句。或者乱写几句。对我来说不写和不说又有什么区别。我这个人就是我行我素。不怕人骂。我做的力求准确。朋友看我的帖子时候可以上机验证。而且每次的结果我都带抓图(这个可能这个论坛没几个人能做到吧,我既然做了版主就一定会尽我所能。帮助大家。要骂我的发e-mail来我邮箱ldm03@scse.com.cn)我用vc++.net写的。大家运行的时候也最好用vc++.net)(热情的贴子也是上机验证的。我这里吐血推荐各位朋友看看他的贴子。热情是我半个师傅呢) #include<stdio.h> #include<math.h> main() { int x,i,j,n,a[10],k,temp,b[10]; for(n=0;n<10;n++) b[n]=n; for(x=12;x<50;x++) { if(pow(x,3)>999 && pow(x,4)<999999) { k=(int)pow(x,3); //强行转换 j=(int)pow(x,4); n=0; while(k>0) { a[n]=k%10; //放入数组a[] k=k/10; n=n+1; } while(j>0) { a[n]=j%10; //继续放入,注意我的n变化 j=j/10; n=n+1; } if(n!=10) continue; //因为他说了刚好是0~9。所以数组要满足10个数 for(i=0;i<9;i++) //进行排序 { j=i; temp=a[i+1]; while(temp<a[j]&&j>-1) { a[j+1]=a[j]; j--; } a[j+1]=temp; } i=-1; //判断数组a[]里的数是不是0~9 n=0; while(i<=9) { i++; if(a[i]==b[i]) n++; } if(n==11) { printf("%d\n",x); break; } } } }
图片附件: 游客没有浏览图片的权限,请 登录注册

生是编程人!!!!死是编程鬼!!!!颠峰人生!!!焚尽编程!!! 爱已严重死机!情必须重新启动!情人已和服务器断开连接!网恋也需要重新拨号!-----激情依旧
2005-04-17 02:27
thanks
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-4-15
收藏
得分:0 
我不是高手~

2005-04-17 08:40
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

晕,写错了一个函数,导致结果错误,改一下: #include<stdio.h>

void sort(int a[],int l) {int i,j,k,t; for(i=0;i<l-1;i++) {k=i; for(j=k+1;j<l;j++) if(a[k]>a[j]) k=j; if(k!=i) {t=a[i];a[i]=a[k];a[k]=t;} } } main() {int x,i,a[10],j; long m,n; x=10; while(1) { m=x*x*x; n=x*x*x*x; j=0; while(m) {a[j++]=m%10; m=m/10; } while(n) {a[j++]=n%10; n=n/10; } if(j>=10) {sort(a,10); for(i=0;i<10;i++) if(a[i]!=i) break; if(i>=10) break; } x++; } printf("The age =%d \n",x); getch(); }

这样比较好理解!

[此贴子已经被作者于2005-4-17 15:23:01编辑过]


2005-04-17 15:05
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

楼中两位程序尚待改进

main() { long a,b,c; int T[10]={0},flag,i;

for(a=11;a<32;a++) /*a为年龄,由题可知10<a<32 */ { b=a*a*a; c=b*a; flag=1;

while(b) { T[b%10]=1; b/=10; } while(c) { T[c%10]=1; c/=10; } for(i=0;i<10;i++) { if(T[i]==0) { flag=0; } T[i]=0; } if(flag==1)printf("The age = %d \n",a); }

getch();

}


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-04-17 15:46
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
晕,空前大虾竟然在我发贴的同时删了自己的贴子

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-04-17 15:49
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
晕,怎么又有了?狂晕ing..................

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-04-17 15:50
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
只是编辑一下,写错了一个函数!

2005-04-17 20:19
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
看错了,

[此贴子已经被作者于2005-4-17 20:37:23编辑过]



2005-04-17 20:31
hbjmll
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-3-14
收藏
得分:0 
不知道22楼的大哥为什么发牢骚,呵呵,不过我觉得大家还是应该在写程序的时候先看看别人的程序......我的程序在18楼,我发贴之前是看过楼上所有帖子然后再给出的自己的思路的,因为从别人的程序中或多或少可以学到一些自己并不熟悉的东西,从而完善自己的思路。看了22楼的程序,我想厚着脸皮请22楼的高手大哥比较一下18楼和22楼两个程序,给出它们各自的优劣的一个评判(我想我写的再差也不会是一无是处的吧,呵呵),供大家把玩。小弟初来乍到,各位大虾多多关照,:)
2005-04-17 21:05
快速回复:这题算法的难度好高,希望有高手解答
数据加载中...
 
   



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

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