解题思路:
求最大公约数i从1开始到min{m,n},利用强制转换,(float)m/i==m/i并且(float)n/i==n/i,则i为一个公约数;
求最小公倍数i从min{m,n}到m*n,同样利用强制转换,(float)i/m==i/m并且(float)i/n==i/n,则i为一个公倍数,第一个符合条件的i即为最小公倍数,即利用break跳出循环
注意事项:
条件里的=为赋值,应该用==表示等于;条件里的并且应用&&
参考代码:
#include <stdio.h>
int main(){
int m,n,a,b,i;
scanf("%d %d",&m,&n);
for(i=1;i<=(m<n?m:n);i++){
if((float)m/i==m/i&&(float)n/i==n/i){
a=i;
}
}
for(i=(m<n?m:n);i<=m*n;i++){
if((float)i/m==i/m&&(float)i/n==i/n){
b=i;break;
}
}
printf("%d %d",a,b);
return 0;
}
0.0分
0 人评分
大神老白 (C语言代码)浏览:715 |
C语言程序设计教程(第三版)课后习题8.3 (Java代码)浏览:1374 |
【密码】 (C语言代码)浏览:333 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:524 |
C语言训练-尼科彻斯定理 (C语言代码)浏览:469 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:543 |
剪刀石头布 (C语言代码)浏览:753 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:609 |
回文数字 (C语言代码)浏览:2510 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:811 |