「余りの処理」の編集履歴(バックアップ)一覧に戻る

余りの処理 - (2012/11/28 (水) 13:29:26) のソース

マスターオブ整数論大学への数学
*問い6-1
7で割ると5余り、9で割ると7余り11で割ると3余る数のうち3番目に小さいもの。
効率の悪い解法。

 #include<stdio.h>
 int calc(int a1,int b1,int a2,int b2,int a3,int b3){
	//この関数は小さい数だけ取り扱えます
	int stop=(a1*a2*a3)+a1+a2+a3+b1+b2+b3;
	while(1){
		if(stop<b1||stop<b2||stop<b3)break;
		if(b1==b2&&b2==b3){
			return b3;
		}
		if(b1<=b2&&b1<=b3){
			b1+=a1;
		}else if(b2<=b3&&b2<=b1){
			b2+=a2;
		}else if(b3<=b1&&b3<=b2){
			b3+=a3;
		}
	}
	printf("解なし");
	return -1;
 }
 int main(){
	printf("問い6-1-1の答え%d\n",calc(7,5,9,7,11,3)+7*9*11*2);
	int t=calc(7,1,9,2,11,3);
	int ans=t;
	while(t<1000){
		t+=7*9*11;
		ans=t;
	}
	ans=t-1000>1000-ans?ans:t;
	printf("問い6-1-2の答え%d",ans);
 }