| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2337 人关注过本帖
标题:[讨论]来做两个题.感兴趣的进来
只看楼主 加入收藏
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
收藏
得分:0 

如果n不大的话,
用构造+余数进行判重的话,还是会比较快的,
1->10->11->100->101->110............................


汗,都懒得写代码了.......... cheat了一个威望,哈.....
2006-09-30 22:15
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 

我的思路。。。效率很低
i=1;
i=1*10;
a[0]=1;
a[1]=10 a[2]=a[0]+a[1];......
a[3]=100 a[4]=a[3]+a[0] a[5]=a[3]+a[1] a[6]=a[3]+a[2]..........
........

[此贴子已经被作者于2006-9-30 22:25:37编辑过]


羊肉串 葡萄干 哈密瓜!!
2006-09-30 22:23
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
楼住快吧 你的 贴上来看看吧

羊肉串 葡萄干 哈密瓜!!
2006-09-30 22:44
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

那好吧.

/*任意给定一个自然数N,寻找一个M,要求M是N的倍数,并且它的所有各位数字是由
0或1组成,并要求M尽可能小*/
#include<stdio.h>
long D_B_D(int n)
{
int i=0,a[8];
long sum=0;
while(n)
{
a[i]=n%2;
n=n/2;
i++;
}
i--;
while(i>=0)
{
sum+=a[i];
if(i>0)
{
sum*=10;
}
i--;
}
return(sum);
}

int main()
{
int i,n;
long sum;
scanf("%d",&n);
for(i=1;i<=1023;i++) //最多能处理到long的范围。共10位。
{
sum=D_B_D(i);
//printf("sum=%ld\n",sum);
if(sum%n==0)
{
printf("%ld\n",sum);
break;
}
}
return(0);
}


倚天照海花无数,流水高山心自知。
2006-09-30 23:13
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

1.


#include<stdio.h>
void function(int);
void main()
{
int m;
scanf(\"%d\",&m);
while(m!=0&&m>=2&&m<=1000)
{
printf(\"%d=1\",m);
function(m);
putchar('\n');
scanf(\"%d\",&m);
}
}

void function(int m)
{
while(m!=1)
{
for(int n=2;n<=m;n++)
if(m%n==0)
{
m/=n;
printf(\"*%d\",n);
break;
}
}
}


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-01 10:42
lxzlovewtt
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-2-18
收藏
得分:0 

输入一个数,求它的质因子分解!
#include<stdio.h>
#include<math.h>
int prime[10000];

int mersenne()
{
int p=0;
int i,j,flag;

for(i=2;i<=10000;i++)
{
flag=0;
for(j=2;j<=sqrt(i);j++)
if(i % j==0)
{
flag=1;
break;
}
if(flag==0)
{
prime[p]=i;
p+=1;
}
}

} /*从int mersenne()到这里是求从2到32767之间的素数*/


void main()
{
int analyse(int);
int in;
mersenne();
scanf("%d",&in);
while(in!=0)
{
if(in>=2)
analyse(in);
else
printf("Error!!!");
scanf("\n%d",&in);
}
}


int analyse(int ana) /*以下程序段是求质因子分解*/
{
int result[20],i;
int temp,p=0,q=0;
temp=ana;

while(ana!=1 && ana!=0)
{
if((ana %prime[p])==0)
{
ana=ana/prime[p];
result[q]=prime[p];
++q;
}
else
{
++p;
}
}
printf("%d=%d",temp,result[0]);

for(i=1;i<q;i++) printf("*%d",result[i]);
printf("\n");
return 0;

}


各位看看算法有什么地方可以改进的。。。怎么样做效率会更高!!!

2006-10-01 11:48
ljh0716
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-10-1
收藏
得分:0 
#include<stdio.h>
int main()
{ long i=2;
long n;
scanf("%ld",&n);
printf("%ld=",n);
while(i*i<=n)
if(n%i)i++;
else {
printf("%ld*",i);
n/=i;}
printf("%ld\n",n);
getch();
}
还不理解的来这理,C/C++||qq群:23509206
2006-10-01 14:48
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

请楼上的注意下我题目输出的格式.


倚天照海花无数,流水高山心自知。
2006-10-01 16:29
chenyulong00
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-10-4
收藏
得分:0 
2006-10-04 20:02
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
得分:0 

自己也瞎写了一个,

#include<stdio.h>
main()
{
int i=2,flag=1;long m;
printf("input the number:");
while(m)
{
scanf("%ld",&m);
if(m)
printf("%ld=",m);

while(m!=1)
{
flag=1;

for(i=2;i<=m&&flag==1;i++)
if(m%i==0)
{
m=m/i;
printf("%d*",i);
flag=0;
}
}
printf("\b \n");
}

getch();
return 0;
}


只剩一年了………… 够了!
2006-10-04 22:49
快速回复:[讨论]来做两个题.感兴趣的进来
数据加载中...
 
   



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

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