PTA编程题韩信点兵的几种方法


1、

//以1~6报数,1~11报数为出发点
#include<stdio.h>
int main(void){
int x=65;//65是同时满足除以6余数为5,除以11余数为10的最小值
while(1){
x+=66;//6和11的最小公倍数
if(x%5==1&&x%7==4){//x还需满足除以5余数为1,除以7余数为4
printf("%d",x);
return 0;
}
}
}

2、

//以1~5报数,1~6报数为出发点
#include<stdio.h>
int main(void){
int x=71;//71是同时满足除以5余数为1,除以6余数为5的最小值
while(1){
x+=30;//6和11的最小公倍数
if(x%7==4&&x%11==10){//x还需满足除以7余数为4,除以11余数为10
printf("%d",x);
return 0;
}
}
}

3、

//以1~7报数,1~11报数为出发点
#include<stdio.h>
int main(void){
int x=32;
while(1){
x+=77;
if(x%5==1&&x%6==5){
printf("%d",x);
return 0;
}
}
}

4、

//全局报数来看

#include<stdio.h>
int main(){
int i;
for(i=1;i<=1000000;i++){
if(i%5==1&&i%6==5&&i%7==4&&i%11==10){
printf("%d",i);
break;
}
}
return 0;
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM