一个九位数,1-9各用一次,第一位是1的倍数,前两位是2的倍数,以此类推前九位是9的倍数(五年级的奥数题) 1到9着9个数字组成,九位数的前两位能被2整除.....
\u4e00\u4e2a\u6570\u7b2c\u4e00\u4f4d\u88ab\u4e00\u6574\u9664 \u7b2c\u4e8c\u4f4d\u88ab\u4e8c\u6574\u9664 \u4ee5\u6b64\u7c7b\u63a8 \u7684\u4e5d\u4f4d\u6570 1\u52309\u4e2d \u4e0d123456789
\u7ed3\u679c\u662f 381654729
\u6211\u662f\u7528C\u8bed\u8a00\u8ba1\u7b97\u51fa\u6765\u7684\uff0c\u5e76\u4e14\u5c31\u8fd9\u4e00\u79cd.
\u601d\u60f3\u662f\uff1a
\u9664\u4e86\u7b2c5\u80fd\u53d65\uff0c\u522b\u7684\u90fd\u4e0d\u80fd\u3002
2\u6574\u9664\u672b\u4f4d\u662f\u5076\u6570
3\u6574\u9664\uff0c\u52a0\u8d77\u6765\u53ef\u4ee5\u88ab3\u9664(\u52a0\u6cd5\u901f\u5ea6\u5feb)
4\u6574\u9664\uff0c\u53ea\u770b\u6700\u540e2\u4f4d
5\u6574\u9664\uff0c\u672b\u4f4d\u4e3a5
6\u6574\u9664\uff0c\u672b\u4f4d\u4f4d\u5076\u6570\uff0c\u4f46\u4e5f\u8981\u88ab3\u6574\u9664
7\u6574\u9664\uff0c\u786c\u7b97\u7684
8\u6574\u9664\uff0c\u672b3\u4f4d\u6b63\u5904\u5c31\u53ef\u4ee5\u4e86
9\u6574\u9664\uff0c\u53ea\u8981\u524d\u9762\u76848\u4f4d\u53ef\u4ee5\uff0c\u6700\u540e\u4e00\u4e2a\u8fd8\u6ca1\u7528\u7684\u6570\u5c31\u662f\u7b2c9\u4f4d\u7684\u3002
\uff081---9\uff09\u4e4b\u548c\u662f45\uff0c\u4efb\u4f55\u987a\u5e8f\u90fd\u80fd\u6574\u96649
\u590d\u6742\u5ea6\u5206\u6790\uff1a 8*4*6*5*1*4*3*2*1 == 23040, \u5927\u698223040\u79cd\u9009\u6cd5\u91cc\u6311\u6b63\u786e\u7b54\u6848\uff0c\u8ba1\u7b97\u673a\u53ef\u4ee5\u5f88\u5feb\u5b8c\u6210\u3002 \u4e0b\u9762\u662fc++\u4ee3\u7801\u3002
#include
#include
using namespace std;
int num[10];
int Ans;
bool over;
struct Node
{
int data[10];
int p;
};
typedef queue MyQ;
void Work()
{
int i;
Node tmp;
MyQ q;
for(i=1;i<=9;i++)
{
if (i != 5 )
{
tmp.data[1] = i;
tmp.p = 1;
q.push(tmp );
}
}
while( !q.empty() )
{
tmp = q.front();
q.pop();
int p = tmp.p + 1;
tmp.p++;
if( p==2 )
{
for(i=2;i<=9;i++,i++)
{
if( i == tmp.data[1] || i==5 )
continue;
tmp.data[p] = i;
q.push(tmp);
}
}
if( p==3 )
{
int sum=tmp.data[1]+tmp.data[2];
for(i=1;i<=9;i++)
{
if( i==tmp.data[1] || i== tmp.data[2]|| i==5)
continue;
if( (sum +i)%3 == 0 )
{
tmp.data[p] = i;
q.push(tmp);
}
}
}
if( p==4 )
{
for(i=1;i<=9;i++)
{
if( i==tmp.data[1] || i==tmp.data[2] || i==tmp.data[3] || i==5 )
continue;
if( (tmp.data[3]*10+i)%4==0)
{
tmp.data[p] = i;
q.push(tmp);
}
}
}
if( p==5 )
{
tmp.data[p] = 5;
q.push(tmp);
}
if( p==6)
{
int sum = tmp.data[1]+tmp.data[2]+tmp.data[3]+tmp.data[4]+5;;
for(i=2;i<=9;i++,i++)
{
if( i==tmp.data[1] || i== tmp.data[2]||i==tmp.data[3] || i== tmp.data[4]|| i==5)
continue;
if( (sum+i) %3 == 0 )
{
tmp.data[p] = i;
q.push(tmp);
}
}
}
if( p==7 )
{
int sum =tmp.data[1];
int k=2;
while(k<7)
{
sum = sum*10 + tmp.data[k];
k++;
}
sum = sum*10;
for(i=1;i<=9;i++,i++)
{
if( i==tmp.data[1] || i== tmp.data[2]||i==tmp.data[3] || i== tmp.data[4]|| i==5 || i==tmp.data[6])
continue;
if( (sum+i) % 7 ==0 )
{
tmp.data[p] = i;
q.push(tmp);
}
}
}
if(p==8 )
{
int sum = tmp.data[6] *100+ tmp.data[7]*10;
for(i=2;i<=9;i++,i++)
{
if( i==tmp.data[1] || i== tmp.data[2]||i==tmp.data[3] || i== tmp.data[4]|| i==5 || i==tmp.data[6] || i==tmp.data[7])
continue;
if( (sum+i) % 8 ==0 )
{
tmp.data[p] = i;
int k,m;
int one=0;
for(k=1;i<=9;k++)
{
for(m=1;m<=8;m++)
{
if( k== tmp.data[m])
break;
}
if( m>8 )
{
one = k;
break;
}
}
tmp.data[9] = one;
for(k=1;k<=9;k++)
{
cout<<tmp.data[k];
}
cout<<endl;
Ans++;
if( Ans > 10)
return;
}
}
}
}
cout<<"ÓÐ"<<Ans<<"¸ö½\u00e1¹û"<<endl;
}
int main()
{
over = false;
Ans = 0;
memset( num,0,sizeof(num));
Work();
return 0;
}
解答如下:
先说1~9的倍数的特点:
1,随便
2,偶数
3,各位的和是3的倍数。
4,后两位能被4整除,这个数就是4的倍数。
5,末位数是5或者0。
6,偶数,并且能被3整除。
7,若一个整数的个位数字截去,再从余下的数中,减去个位数的2倍,如果差是7的倍数,则原数能被7整除。如果差太大或心算不易看出是否7的倍数,就需要继续上述「截尾、倍大、相减、验差」的过程,直到能清楚判断为止。例如,判断133是否7的倍数的过程如下:13-3×2=7,所以133是7的倍数;又例如判断6139是否7的倍数的过程如下:613-9×2=595 , 59-5×2=49,所以6139是7的倍数,余类推。
8,后三位能被8整除,就是8的倍数。
9,每个位置的数相加之和能整除9,就是9的倍数。
因为5的倍数的特点是末位是5或0,又数中没有0,所以第五位只能是5
第2,4,6,8位只能是偶数,且其他位是奇数。
先考虑第四位:根据能被4整除的数的特点得:第三位第四位组成的两位数能被4整除,第四位只能是偶数,第三位只能是奇数且不是5,符合这样的有12,32,72,92,16,36,76,96。即第四位只能是2或6。
分类:
(1)若第四位是2。
考虑第六位:
因为前三位的和能被3整除,所以4,5,6位的和也能被3整除,第4,5位分别是2和5,符合条件的第六位只能是8。
考虑第七八位:
被8整除的数后三位能被8整除,即第6,7,8位能被8整除,因为第六位是8,800能被8整除,所以只需第7,8位能被8整除即可。符合条件的七八位只有16和96。即第八位一定是6,第七位为1或9
这样第二位就只能是4了
若第七位为1,则第1,3,9位还剩下3,7,9三个数字,第二位是4,前三位的和要能被3整除,都不符合。
若第七位为9,则第1,3,9位还剩下3,7,1三个数字,第二位是4,前三位的和要能被3整除,前三位为147或741时符合。但是这两种情况都可以检验出来不满足前7位能被7整除。
终上所述,第四位为2的情况全被排除
所以第四位只能是6,再继续上面的分析就可以得到最终结果是381654729
381654729
熟练使用各种整除性质,排列好数字:
38/2 ……0
381/3 ……0
16/4 ……0
5/5 ……0
654/6 ……0
654 - 381 = 273,273/7 …… 0
472/8 …… 0
976583421
976543821
976583241
381654729
381654729
绛旓細468-173=295 468 - 295 = 173
绛旓細2銆佺敤1銆2銆3銆4銆5銆6銆7銆8銆9杩9涓暟瀛楀悇涓娆★紝缁勬垚涓涓琚噺鏁般佸噺鏁般佸樊閮芥槸涓浣嶆暟鐨勬纭殑鍑忔硶绠楀紡锛岄偅涔堣繖涓畻寮忎腑鐨勫樊鏈澶ф槸澶氬皯銆傚垎鏋愶細鏍规嵁琚噺鏁-鍑忔暟=宸紝瑕佷娇杩欎釜绠楀紡涓殑宸渶澶э紝搴斿綋浣胯鍑忔暟鏈澶э紝鍑忔暟鏈灏忥紱鍒欒鍑忔暟鐨勭櫨浣嶄竴瀹氭槸9锛屽噺鏁扮殑鐧句綅涓瀹氭槸1锛宸殑鐧句綅鍙兘鏄8鎴栬7锛...
绛旓細1鑷充節濉節涓柟妗 鍙互杩欐牱鏉ユ帓鍒楋細354 + 627 = 981 绔栧紡瑙佸浘锛
绛旓細1--9鏄1鐨勫嶆暟鐨勬渶灏忔暟鏄1.1--9鏄2鐨勫嶆暟鐨勬渶灏忔暟鏄2.1--9鏄3鐨勫嶆暟鐨勬渶灏忔暟鏄3.1--9鏄4鐨勫嶆暟鐨勬渶灏忔暟鏄4.1--9鏄5鐨勫嶆暟鐨勬渶灏忔暟鏄5.1--9鏄6鐨勫嶆暟鐨勬渶灏忔暟鏄6.1--9鏄7鐨勫嶆暟鐨勬渶灏忔暟鏄7.1--9鏄8鐨勫嶆暟鐨勬渶灏忔暟鏄8.1--9鏄9鐨勫嶆暟鐨勬渶灏忔暟鏄9.绛旓細杩欎釜涔濅綅鏁...
绛旓細锛4锛壝凤紙2锛=锛6锛壝凤紙3锛=锛1锛夛紙5锛夛紙8锛壝(7)(9)=2 鍓嶉潰涓や釜闄ゆ硶閮芥槸2鍊嶇殑鍏崇郴锛屽彧鍙兘鏄2梅1锛4梅2锛6梅3锛8梅4.鎵浠ワ紝5銆7銆9鍙兘鍦ㄥ悗闈㈢殑5涓┖涓傚洜涓2鍜涓涓涓浣嶆暟鐨勭Н涓嶈秴杩200锛屾墍浠ヤ笁浣嶆暟鐨勭櫨浣嶅彧鑳芥槸1锛涓綅鏄伓鏁帮紱涓や綅鏁扮殑涓綅涓嶈兘鏄5锛屽惁鍒欎笁浣嶆暟鐨勪釜浣嶆槸0锛...
绛旓細璁9涓暟涓紝缁勫悎璧锋潵锛屾斁鍦ㄥ崄浣嶇殑鑻ュ共涓暟鍜屼负X 锛圶<10锛夊垯鎵鏈変釜浣嶇殑鏁扮殑鍜= 45 - X銆傜粍鍚堟垚鐨勬暟鐩稿姞鐨勫拰 = X脳10 + (45-X) = 99 瑙e緱X = 6銆傚垎鎯呭喌璁ㄨ锛欰銆佸綋X鐢1涓鏁板姞鎴愭椂锛岃繖涓暟鍗佷綅鏄6锛屼釜浣嶆湁8绉嶅彲鑳姐傚墿浣7涓1浣嶆暟銆備緥濡傦細61銆2銆3銆4銆5銆7銆8銆9锛涒︹69銆1...
绛旓細1+2+3+...+9=45 濂囨暟浣嶆暟瀛楀拰-鍋舵暟浣嶆暟瀛楀拰=11 濂囨暟浣嶆暟瀛楀拰=28,鍋舵暟浣嶆暟瀛楀拰=17 28=1+3+7+8+9 17=2+4+5+6 鏈灏忕殑涔濅綅鏁涓 123475869
绛旓細瑙o細鍏堝皢5568鍒嗚В璐ㄥ洜鏁帮紝寰楋細5568锛2脳2脳2脳2脳2脳2脳3脳29锛庡皢杩欎簺鍥犳暟缁勫悎鎴愪袱涓袱浣嶆暟鎴涓涓涓や綅鏁板拰涓涓笁浣嶆暟鐨勪箻绉舰寮忥細5568锛12脳464锛16脳348锛24脳232锛32脳174锛48脳116锛58脳96锛64脳87銆傛牴鎹鐩姹傦紝鎶1銆2銆3銆4銆5銆6銆7銆8銆9濉繘鏂规鍐咃紝鏈夊緢澶氱濉硶锛屼笅闈㈡槸...
绛旓細鎬濇兂鏄細闄や簡绗5鑳藉彇5锛屽埆鐨勯兘涓嶈兘銆2鏁撮櫎鏈綅鏄伓鏁 3鏁撮櫎锛屽姞璧锋潵鍙互琚3闄(鍔犳硶閫熷害蹇)4鏁撮櫎锛屽彧鐪嬫渶鍚2浣 5鏁撮櫎锛屾湯浣嶄负5 6鏁撮櫎锛屾湯浣嶄綅鍋舵暟锛屼絾涔熻琚3鏁撮櫎 7鏁撮櫎锛岀‖绠楃殑 8鏁撮櫎锛屾湯3浣嶆澶勫氨鍙互浜 9鏁撮櫎锛屽彧瑕佸墠闈㈢殑8浣嶅彲浠ワ紝鏈鍚涓涓杩樻病鐢ㄧ殑鏁板氨鏄9浣鐨勩傦紙1---9锛変箣鍜...
绛旓細鏈澶ф槸948765321 鏈灏忔槸851234679