有兵一队,若列成5行纵队,则末行1人; 列成6行纵队,则末行5人; 列成7行纵队,则末行4人; 列成11行纵队,则末行10人
问题描述:
有兵一队,若列成5行纵队,则末行1人; 列成6行纵队,则末行5人; 列成7行纵队,则末行4人; 列成11行纵队,则末行10人
求兵数
答
好像很经典,不过不知道书上怎么做的!
设兵数为x,依题意有:
mod(x-1,5) = 0 => x的尾数是1或6
mod(x+1,6) = 0,以及 mod(x+1,11) = 0 => mod(x+1,66) = 0,所以x是奇数,所以尾数为1.
设y=x+1,则y的尾数是2,得
mod(y+2,7) = 0 ,mod(y,66) = 0.令y = 66*m,m为一整数,且m的尾数必须为2或7;
再令y+2 = 7*n,n也为一整数,且n的尾数必须是2(因为y+2的尾数是4),得到:
66m + 2 = 7n 且m的尾数为2或7,n的尾数为2.
数值解得最小的m=32,n=302,所以最小的x=66*32-1=2111.
若m+u,n+v也满足尾数分别为2或7,2的条件,u,v为整数,且有
66(m+u) + 2 = 7(n+v)
得出66u = 7v.如果没有尾数的限制,则u=7*K,v=66*L,K,L为整数即可.
但是由于尾数的条件限制,u的尾数必须为0或者5,v的尾数必须为0,所以v最小是66*5=330,
相应的,u最小是7*5=35,得到次小的x=66*(32+35)-1=4421.
依次类推,x=66*(32+35*p)-1,其中p=0,1,2,3,...