中国剩余定理__韩信点兵算法__大衍求一术

一、问题描述:

三人同行七十稀

五树梅花甘一枝

七子团圆正半月

除百零五便得知


对一个正整数,先用 3 去除,所得余数与 70 相乘,然后用 5 去除,所得余数与 21 相乘,最后用 7 去除,所得余数与 15 相乘,三个积相加,循环减去105,直到差小于105为止。


二、

#include
int main(){
	int n, a, b, c, s, i = 0;
	for(n = 1; n <= 99; n++){
		a = n % 3;
		b = n % 5;
		c = n % 7;
		s = a * 70 + b * 21 + c * 15;
		i = s/105;
		printf("%d = %d * 70 + %d * 21 + %d * 15 - %d*105\n",n,a,b,c,i);
	}
} 

中国剩余定理__韩信点兵算法__大衍求一术_第1张图片


三、“今有物,不知其数,三三数之,剩二; 五五数之,剩三; 七七数之,剩二。问几何?”写出小于1000的所有解

#include
int main(){
	for(int n=1000;n>0;n--){
		if(n%3==2&&n%5==3&&n%7==2){
			printf("%d\t",n);
		}
	}
}

你可能感兴趣的:(C语言实例精粹)