https://blog.csdn.net/qq_44973159/article/details/92847026
1.求俩个数的最大公约数,
1.首先取俩个数的比较小的数为min,定义一个i遍历,for循环到i<=min,在循环中用if分支判断(取余==0);
代码如下:
#include <stdio.h>
int main(){
//求最大公约数
int a , b;
int min;
scanf("%d %d",&a,&b);
if(a<b){
min =a;
}else{
min = b;
}
int ret ;
int i;
for(i=1;i<=min;i++){
if(a%i==0){
if(b%i==0){
ret =i;
}
}
}
printf("%d和%d的最大公约数是%d",a,b,ret);
return 0;
}
上面的代码略显冗长,而对于求最大公约数有一种方法——辗转相除法
#include <stdio.h>
int main(){
//求最大公约数
/*辗转相除法,
a b t
12 18 12
18 12 6
12 6 0
*/
int a , b;
printf("输入俩个数:");
scanf("%d %d",&a,&b);
int a1=a;
int b1=b;
int t ;
while(b!=0){
t =a%b;
a=b;
b=t;
}
printf("%d和%d的最大公约数是%d",a1,b1,a);
return 0;
}
2计算水仙花数(这里计算三位数为例)
#include <stdio.h>
int main() {
int num;
for(num=100; num<1000; num++) {
int a = num%10; //保存个位
int b =(num/10)%10; //保存十位
int c =num/100; //保存百位
if(a*a*a+b*b*b+c*c*c==num) {
printf("水仙花数有 %d\n",num);
}
}
return 0;
}
3.打印出九九乘法表
#include <stdio.h>
int main() {
int i,j;
for(i=1;i<10;i++){
for(j=1;j<=i;j++){
printf("%d * %d = %d\t",j,i,i*j); // 在当中 \t 表示立表
if(i==j){
printf(" \n"); //当俩个值相等时,换行
}
}
}
return 0;
}