| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4854 人关注过本帖
标题:[讨论]第七次编程题目,大家支持一下
只看楼主 加入收藏
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
回复:(crackerwang)以下是引用iwfy在2007-3-13 13:...

但跟 se7en_enter 的代码比起来,还是显得笨了些,se7en_enter才用了36行,而我就不行,动不动就是100多行
解题方法还是需要继续深入研究;
一起努力吧;


英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-03-13 19:03
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
回复:(nuciewth)crackerwang I喜欢c 都写的蛮好....
i喜欢c的qu,算的好想是fibnoce(不知道这个单词有没有拼错)数列,num代表的是数列的第几位,

2007-03-13 19:04
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
回复:(iwfy)回复:(crackerwang)以下是引用iwfy在...
se7en_enter确实是到现在为止发出来中写的最好,我也佩服,我看他的代码条理和格式很清楚,变量还是英文命名,
我猜他是软件或计算机专业的

2007-03-13 19:08
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
回复:(crackerwang)回复:(iwfy)回复:(cracker...

是啊,应该向高手看齐,真希望有人用枪指着我的脑袋逼我学!
高手之路,不由分说;
下午的时候想了想,把刚才的减改成加就接近se7en_enter的代码了;


英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-03-13 19:26
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
有趣的现象,输入的时候可以用+,如45+23+12+6548,或者空格也可以,得到的结果是分别是他们各自的序列。

[此贴子已经被作者于2007-3-13 19:44:45编辑过]



英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-03-13 19:42
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

贴上我的代码,.刚看过几个高手写的,我都不愿意贴出来的,如果大家要的话,我可以把几个高手写的发上来.

#include<stdio.h>
#include<math.h>
int main()
{
int n,length;
int data[15];

while(EOF!=(scanf("%d",&n))&&n!=0)
{
length=0;
n--;
while(n>0)//根据数据关系,化成二进制
{
data[length++]=n%2;
n/=2;
}
printf("{ ");
if(length!=0)
{
printf("%ld",(long)pow(3,--length));
}
while(--length>=0)
{
if(data[length]==1)
{
printf(", %ld",(long)pow(3,length));
}
}
printf(" }\n");
}
return 0;
}

请大家继续关注...


倚天照海花无数,流水高山心自知。
2007-03-13 20:27
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
真厉害,发吧,让大家研究研究

英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-03-13 20:39
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

以下皆转载,看看别人是怎么写的.

#include <stdio.h>
//Viusal C++ 6.0
#define BIGINT __int64
#define FORMAT "%I64d"
/*
mingw use this macro
#define BIGINT long long
#define FORMAT "%I64d"

linux use this macro
#define BIGINT long long
#define FORMAT "%lld"
*/

BIGINT ThreePower[32];

void HeroNeedThree(BIGINT* subset, BIGINT n)
{
int t, p;
BIGINT m;
m = n-1;
for (t = 0; m; m&=m-1) t++;
p = 0; m = n-1; subset[0] = t;
while (t)
{
if (m & 1) subset[t--] = ThreePower[p];
p++;
m >>= 1;
}
}

int main()
{
int i;
BIGINT n, subset[33];
ThreePower[0] = 1;
for (i = 1; i < 32; i++) ThreePower[i] = ThreePower[i-1]*3;
while (EOF != scanf(FORMAT, &n))
{
HeroNeedThree(subset, n);

printf("{ ");
for (i = 1; i < subset[0]; i++) printf(FORMAT", ", subset[i]);
if (subset[0]) printf(FORMAT" ", subset[subset[0]]);
puts("}");
}
return 0;
}


倚天照海花无数,流水高山心自知。
2007-03-13 21:00
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
回复:(nuciewth)贴上我的代码,[em03].刚看过几个高...
当输入32769-65536的时候是{}

[此贴子已经被作者于2007-3-13 21:07:16编辑过]



英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-03-13 21:01
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

typedef long long unsigned INT64;

void HeroNeedThree (INT64* subset, unsigned int n)
{
static INT64 three[41];
static bool ini = false;

if (ini == false) {
INT64 a = 1;
for (int i = 0; i < 41; ++i, a*=3) {
three[i] = a;
}
ini == true;
}

int bitn = 31;
unsigned int mask = (1 << 31);

for (; bitn >= 0 && ((mask&n)==0); --bitn, mask >>= 1);

int amount = 0;
for (int i = 1; bitn >= 0; mask>>=1, --bitn) {
if (n > mask) {
subset[i] = three[bitn];
amount++;
n -= mask;
i++;
}
}
subset[0] = amount;
}
方法:这跟二进制有点关系.


倚天照海花无数,流水高山心自知。
2007-03-13 21:02
快速回复:[讨论]第七次编程题目,大家支持一下
数据加载中...
 
   



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

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