- 2
- 0
- 约1.18万字
- 约 22页
- 2020-12-10 发布于天津
- 举报
PAGE
PAGE # / 23
穷举法
★ 最大公约数和最小公倍数
用穷举法求最大公约数 iloop 的思路:
1、穷举的范围是 1 到两个整数中的最小数 ;
2、可能的解是两个数分别除以 iloop 时都能整除,余数为 0 的那个 iloop. 而最小公倍数等于两个数的积除以最大公约数。
#includestdio.h
int max(int first,int second);
int min(int first,int second);
void main(){int n1=0,n2=0,imax=0,imin=0;
printf(please input two number:
\n);
scanf(%d%d,n1,n2);
imax=max(n1,n2);
imin=min(n1,n2);
printf(max number is:
%d\n,imax);
printf(min number is:
%d\n,imin);}int max(int first,int second){int itmp=0,iloop=1; if(firstsecond){itmp=first;
first=second;
second=itmp;}while(iloop=first){if(((first%iloop)==0)((second%iloop)==0))
itmp=iloop;
iloop=iloop+1;}return itmp;}int min(int first,int second){int itmp=0;
itmp=first*second/max(first,second);
return itmp;} ★ 数字分解算法
试想想十进制数 123,要怎样才能分解出
1、 2 和 3 呢?
个位 3当然是: 123%10=3;十位 2有点难度,不过想想就出来啦: 12%10=2 嘛,那 12怎么来呢?123/10就等于 12了嘛~~~至于 1,用 123除以 100就出来 啦~程序如下:
#includestdio.h
void main(){int no=0,itmp=0;
scanf(%d,no);
while(no0){itmp=no%10;
printf(%d\n,itmp);
no=no/10;}}
★ 水仙花数
所谓水仙花数,是指一个 3 位的十进制数,该数各位数字的立方和等于该 数本身。例如 153 是一个水仙花数,因为 13+53+33=
153.100 到 1000 里当然还有几个水仙数,我们就交给电脑算吧 ~
#includestdio.h
void main(){int ge=0,shi=0,bai=0,itmp=0,ino=0;
for(ino=100;ino1000;ino++){ge=ino%10;
shi=(ino/10)%10;
bai=(ino/100)%10;
itmp=ge*ge*ge+shi*shi*shi+bai*bai*bai;
if(itmp==ino)
printf(no is:
%d\n,ino);}}
排序法
( 1)“冒泡法”
冒泡法大家都较熟悉。其原理为从 a[0]开始,依次将其和后面的元素比较, 若a[O]a[i],则交换它们,一直比较到a[n]。同理对a[1],a[2],...a[n-1]处理,即完 成排序。下面列出其代码:
void bubble(int *a,int n) /* 定义两个参数:
数组首地址与数组大小 */{int i,j,temp;
for(i=0;in-1;i++)
for(j=i+1;jn;j++) /* 注意循环的上下限 */
if(a[i]a[j]) {
temp=a[i];
a[i]=a[j];
a[j]=temp;}}
冒泡法原理简单,但其缺点是交换次数多,效率低。
下面介绍一种源自冒泡法但更有效率的方法 “选择法”。
( 2)“选择法”
选择法循环过程与冒泡法一致,它还定义了记号 k=i,然后依次把a[k]同后面
元素比较,若a[k]a[j],则使k=j.最后看看k=i是否还成立,不成立则交换 a [ k] , a [ i ] ,这样就比冒泡法省下许多无用的交换,提高了效率。
void choise(int *a,int n){int i,j,k,temp;
for(i=0;in-1;i++) {
k=i; /*给记号赋值 */
for(j=i+1;jn;j++)
if(a[k]a[j]) k=j; /* 是 k 总是指向最小元素 */
if(i!=k) { /*当k!=i是才交换,否则a[i]即为最小*/
temp=a[i];
a[i]=a[k];
a[k]=temp;}}}选择法比冒泡法效率更高,但说到高效
原创力文档

文档评论(0)