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