| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 855 人关注过本帖
标题:[转帖]▲▲▲▲面试题与大家共享▲▲▲▲
只看楼主 加入收藏
三少爷
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2004-4-29
收藏
 问题点数:0 回复次数:7 
[转帖]▲▲▲▲面试题与大家共享▲▲▲▲

编程题: 1、写一个程序,把一个100以内的自然数分解因数。(自然数分解因数就是将一

个自然数分解为几个素数的乘积,提示,由于该数不是很大,所以可以将质数保存在数组中,以加快计算速度) 2、编写一个Identify的分配、释放的函数,为1-10000之间的自然数。 from csdn check it out http://community.csdn.net/Expert/topic/3711/3711810.xml?temp=.2223017

搜索更多相关主题的帖子: 转帖 面试 
2005-01-11 22:45
flylee
Rank: 5Rank: 5
等 级:职业侠客
帖 子:309
专家分:374
注 册:2004-8-10
收藏
得分:0 
第一个题做过
第二个题中的Identify分配是什么意思?
2005-01-13 17:30
三少爷
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2004-4-29
收藏
得分:0 
分配质数,释放一系列分解的因数
Identify()可以被认为是isPrime()的宏泛化

2005-01-13 20:51
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
第一题,有点乱,没运行,不知道对不对?

#include<stdio.h>
main()
{int n,a[20],i,l=0,j,k,flag1=0,flag2=0,m;
printf("input a number(<100):");
scanf("%d",&n);m=n;
while(2)
{ for(k=2;k<n;k++)
   {j=n/k;
     flag1=0;
     for(i=2;i<j;i++)
     if (j%i==0) break;
     if (i>=j) flag1=1;
    if(flag1==1) {a[l++]=j;break;}
    }
   n=n/k;
   flag2=0;
  for(i=2;i<n;i++)
if (n%i==0) break;
if (i>=n) {a[l++]=n;break;}
}
printf("%d=",m);
for(i=0;i<l;i++)
{printf("%d",a[i]);
  if (i!=l-1) printf("*");
}
printf("\n");
getch();
}


运行了一下,不对,没时间改,下次有时间两来改!

[此贴子已经被作者于2005-1-13 21:27:00编辑过]



2005-01-13 21:01
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
改了一部分:
#include<stdio.h>
main()
{int n,a[20],i,l=0,j,k,flag1=0,flag2=0,m;
printf("input a number(<100):");
scanf("%d",&n);    m=n;
while(2)
{ for(k=2;k<n;k++)
   {if(n%k==0)
     for(i=2;i<k;i++)
     if (k%i==0) break;
     if (i>=k) flag1=1;
    if(flag1==1) {a[l++]=k;break;}
    }
   n=n/k;
   flag2=0;
  for(i=2;i<n;i++)
if (n%i==0) break;
if (i>=n) {a[l++]=n;break;}
}
printf("%d=",m);
for(i=0;i<l;i++)
{printf("%d",a[i]);
  if (i!=l-1) printf("*");
}
printf("\n");
getch();
}

2005-01-13 21:31
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

这样可以了: #include<stdio.h> main() {int n,a[20],i,l=0,j,k,flag1=0,flag2=0,m; printf("input a number(<100):"); scanf("%d",&n); m=n; while(2) { for(k=2;k<n;k++) { flag1=0;flag2=0; if(n%k!=0) continue;

for(i=2;i<k;i++) if (k%i==0) break; if (i>=k) flag1=1; if(flag1==1) {a[l++]=k;flag2=1;break;} } if(flag2) n=n/k;

for(i=2;i<n;i++) if (n%i==0) break; if (i>=n) {a[l++]=n;break;}

} printf("%d=",m); for(i=0;i<l;i++) {printf("%d",a[i]); if (i!=l-1) printf("*"); } printf("\n"); getch(); }


2005-01-14 08:31
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
看了一下csdn中的那个贴,实在是小屋见大屋!

第二题还是不懂要干什么?


2005-01-14 10:46
fanzorro
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2004-12-24
收藏
得分:0 
what
2005-01-14 10:55
快速回复:[转帖]▲▲▲▲面试题与大家共享▲▲▲▲
数据加载中...
 
   



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

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