如果一个C语言题目是:“韩信点兵,三三数之余2,三五数余3,七七数余2,关数几何?”这个题目应该怎样编

来源:百度知道 编辑:UC知道 时间:2024/06/22 19:24:04

#include<stdio.h>
void main()
{
int i,j,k;
printf("请输入士兵数最大限\n");
scanf("%d",&j);
for(i=23;i<=j;)
{
i=i+103;
}

k=i-103;

printf("韩信点兵得士兵数为 %d \n",k);

}

main()
{
int r3=2,r5=3,r7=2,mul,sub,div,n;
for(n=1;;n++)
if(n%3==2&&n%5==3&&n%7==2)

{mul=r3*70+r5*21+r7*15; /*秦九韶 “大衍求一术”:对一个数(正数),先用3去除所得余数与70相乘,再用5去除所得余数与21相乘,最后用7去除所得余数与15相乘,三个积相加,并不断用105去减,直到差小于105为止,就得到满足“韩信点兵问题”要求的最小正整数解。
比如,67=1*70+2*21+4*15-105。*/
div=mul/105;
sub=mul-div*105;
printf("the number is:%d",sub);
break;
}
}
虽然复杂了点
这样才于韩信点兵沾点边

如果三件三件地数,就会剩下两件;如果五件五件地数,就会剩下三件;如果七件七件地数,也会剩下两件。问:这批物品共有多少件?

变成一个纯粹的数学问题就是:有一个数,用3除余2,用5除余3,用7除余2。求这个数。

#include<stdio.h>
void main()
{printf("如下数可符合要求:");
for(int i=2;i<=1000;i++)
if(i%21==2)