作業(yè)一:
題目:
現(xiàn)有1角 2角 5角
湊出兩元
有哪些可能
例如:
0,0,4
0,5,2
0,10,0
作業(yè):
#include<stdio.h>
int main()
{
int i,j,k,sum=0;//定義ijk,用來表示一角,兩角,五角要用到的張數(shù)
//sum記錄一共多少方法
for(i=0;i<=20/1;i++){//i的取值范圍為0~20
for(j=0;j<=20/2;j++){//j的取值范圍為0~10
for(k=0;k<=20/5;k++){//k的取值范圍為0~4
if(i+2*j+5*k==20){//判斷循環(huán)結果相加是否為20
sum++; //每循環(huán)一次,方法就加一
printf("%d %d %d\n",i,j,k);//最后輸出可以用到的紙張數(shù)
}
}
}
}
printf("共有%d組合方法",sum);
return 0;
}
作業(yè)二:
題目:用戶輸入兩個數(shù),程序輸出它們的最大公約數(shù)
作業(yè):
方法一:
#include<stdio.h>//最大公約數(shù):一個數(shù)既能整除A,又能整除B
int main(){ //碾轉相除法
int x,y,X,i,I;
printf("請輸入兩個整數(shù):");
scanf("%d %d",&x,&y);
X=x; //保持x的初始值
if(x<y){//判斷x與y的大小
x=y;//如果x<y,將y的值賦給x
y=X;//將X(即x的初始值)賦給y
}
for(i=2;i<=y;i++){ //1是所有整數(shù)的公約數(shù);i必須<=兩者之中的最小數(shù);
if(x%i==0&&y%i==0){ //i既能整除x,又能整除y,即:x和y對i分別取余=0
I=i; //防止出現(xiàn)3,5之類的數(shù)
}
}
printf("最大公約數(shù)為:%d",I);
return 0;
}
作業(yè):
方法二:
#include<stdio.h>
int main(){ //相減法
int x,y,X,Y;
printf("請輸入兩個整數(shù):");
scanf("%d %d",&x,&y);
X=x; //確定x,y的初始值
Y=y;
for(;x!=y;){//判斷x與y的值是否相等
if(x>y){//如果x>y,那么將x-y的值賦給x,然后繼續(xù)比較x與y的值是否相等;
x=x-y;
}else{ //如果x<y,那么將y-x的值賦給y,然后繼續(xù)比較x與y的值是否相等;
y=y-x;
}//直到減到x與y的值相等后,結束循環(huán),則最后減到相等的x和y就是最大公約數(shù)
}
printf("最大公約數(shù)為:%d",x);
}
自我拓展:
題目:求兩個數(shù)的最小公倍數(shù)
作業(yè):最小公倍數(shù)=兩整數(shù)的乘積÷最大公約數(shù)
#include<stdio.h>//最大公約數(shù):一個數(shù)既能整除A,又能整除B
//最小公倍數(shù):一個數(shù)既能被A整除,又能被B整除
int main(){ //碾轉相除法
int x,y,X,i,I,m;
printf("請輸入兩個整數(shù):");
scanf("%d %d",&x,&y);
X=x; //保持x的初始值
if(x<y){//判斷x與y的大小
x=y;//如果x<y,將y的值賦給x
y=X;//將X(即x的初始值)賦給y
}
for(i=2;i<=y;i++){ //1是所有整數(shù)的公約數(shù);i必須<=兩者之中的最小數(shù);
if(x%i==0&&y%i==0){ //i既能整除x,又能整除y,即:x和y對i分別取余=0
I=i; //防止出現(xiàn)3,5之類的數(shù)
}
}
printf("最大公約數(shù)為:%d\n最小公倍數(shù)為:%d",I,m=(x*y)/I);
//最小公倍數(shù)=兩數(shù)的乘積除以最大公約數(shù)
return 0;
}