60.1~9分成1:2:3的三個(gè)3位數(shù)
將1到9 這九個(gè)數(shù)字分成三個(gè)3位數(shù),分求第一個(gè)3位數(shù),正好是第二個(gè)3位數(shù)的二倍,是第三個(gè)3位數(shù)的三倍。問(wèn)應(yīng)當(dāng)怎樣分法。
*問(wèn)題分析與算法設(shè)計(jì)
問(wèn)題中的三個(gè)數(shù)之間是有數(shù)學(xué)關(guān)系的,實(shí)際上只要確定第一個(gè)三位數(shù)就可以解決問(wèn)題。
試探第一個(gè)三位數(shù)之后,計(jì)算出另外兩個(gè)數(shù),將其分別分解成三位數(shù)字,進(jìn)行判斷后確定所試探的數(shù)是否就是答案。
需要提醒的是:試探的初值可以是123,值是333。因?yàn)椴豢赡艹鲈摲秶?BR> *程序與程序設(shè)計(jì)
#include
int ok(int t,int *z);
int a[9];
void main()
{
int m,count=0;
for(m=123;m<=333;m++) /*試探可能的三位數(shù)*/
if(ok(m,a)&&ok(2*m,a+3)&&ok(3*m,a+6)) /*若滿(mǎn)足題意*/
printf("No.%d: %d %d %d\n",++count,m,2*m,3*m); /*輸出結(jié)果*/
}
int ok(int t,int *z) /*分解t的值,將其存入z指向的三個(gè)數(shù)組元素,若滿(mǎn)足要求返回1*/
{
int *p1,*p2;
for(p1=z;p1 {
*p1=t%10; /*分解整數(shù)*/
t/=10;
for(p2=a;p2 if(*p1==0||*p2==*p1)return 0; /*若重復(fù)則返回*/
}
return 1; /*否則返回1*/
}
*運(yùn)行結(jié)果
No.1:192 384 576
No.2:219 438 657
No.3:273 546 819
No.4:327 654 981
*思考題
求出所有可能的以下形式的算式,每個(gè)算式中有九個(gè)數(shù)位,正好用盡1到9這九個(gè)數(shù)字。
1)○○○+○○○=○○○ (共有168種可能的組合)
2)○×○○○○=○○○○ (共有2種可能的組合)
3)○○×○○○=○○○○ (共有7種可能的組合)
4)○×○○○=○○×○○○ (共有13種可能的組合)
5)○×○○○=○×○○○○ (共有28種可能的組合)
6)○○×○○=○×○○○○ (共有7種可能的組合)
7)○○×○○=○○×○○○ (共有11種可能的組合)
將1到9 這九個(gè)數(shù)字分成三個(gè)3位數(shù),分求第一個(gè)3位數(shù),正好是第二個(gè)3位數(shù)的二倍,是第三個(gè)3位數(shù)的三倍。問(wèn)應(yīng)當(dāng)怎樣分法。
*問(wèn)題分析與算法設(shè)計(jì)
問(wèn)題中的三個(gè)數(shù)之間是有數(shù)學(xué)關(guān)系的,實(shí)際上只要確定第一個(gè)三位數(shù)就可以解決問(wèn)題。
試探第一個(gè)三位數(shù)之后,計(jì)算出另外兩個(gè)數(shù),將其分別分解成三位數(shù)字,進(jìn)行判斷后確定所試探的數(shù)是否就是答案。
需要提醒的是:試探的初值可以是123,值是333。因?yàn)椴豢赡艹鲈摲秶?BR> *程序與程序設(shè)計(jì)
#include
int ok(int t,int *z);
int a[9];
void main()
{
int m,count=0;
for(m=123;m<=333;m++) /*試探可能的三位數(shù)*/
if(ok(m,a)&&ok(2*m,a+3)&&ok(3*m,a+6)) /*若滿(mǎn)足題意*/
printf("No.%d: %d %d %d\n",++count,m,2*m,3*m); /*輸出結(jié)果*/
}
int ok(int t,int *z) /*分解t的值,將其存入z指向的三個(gè)數(shù)組元素,若滿(mǎn)足要求返回1*/
{
int *p1,*p2;
for(p1=z;p1
*p1=t%10; /*分解整數(shù)*/
t/=10;
for(p2=a;p2
}
return 1; /*否則返回1*/
}
*運(yùn)行結(jié)果
No.1:192 384 576
No.2:219 438 657
No.3:273 546 819
No.4:327 654 981
*思考題
求出所有可能的以下形式的算式,每個(gè)算式中有九個(gè)數(shù)位,正好用盡1到9這九個(gè)數(shù)字。
1)○○○+○○○=○○○ (共有168種可能的組合)
2)○×○○○○=○○○○ (共有2種可能的組合)
3)○○×○○○=○○○○ (共有7種可能的組合)
4)○×○○○=○○×○○○ (共有13種可能的組合)
5)○×○○○=○×○○○○ (共有28種可能的組合)
6)○○×○○=○×○○○○ (共有7種可能的組合)
7)○○×○○=○○×○○○ (共有11種可能的組合)