C趣味程序百例(18)1~9分成1:2:3的三個3位數

C趣味程序百例(18)1~9分成1:2:3的三個3位數,第1張

C趣味程序百例(18)1~9分成1:2:3的三個3位數,第2張

60.1~9分成1: 2: 3的三個3位數
把1到9的九個數分成三個3位數,求第一個3位數正好是第二個3位數的兩倍,第三個3位數的三倍。問怎麽分。
*問題分析和算法設計中的三個數之間存在數學關系
。其實衹要確定前三位就可以解決問題。
探查完前三位數後,計算另外兩位數,分別分解成三位數,做出判斷,確定探查到的數字是否爲答案。
需要提醒的是,試用的初始值可以是123,值是333。因爲不可能超出這個範圍。
*程序與編程
# include
int ok (int t,int * z);
int a[9];
void main()
{
int m,count = 0;
for(m = 123;If (OK (m,a)&&OK (2 * m,a 3)&&OK (3 * m,a 6))[br/] printf("編號%d:% d% d% d \ n")
}

OK (int t,int * z)
{
int *p1,* p2
for(P1 = z;P1 {
* P1 = t % 10;
t/= 10;
for(p2 = a;p2 if(*p1==0||*p2==*p1)返廻0;
}
返廻1;
}
*運行結果
第1號:192 384 576
第2號:219 438 657
第3號:273 546 819

1)○○○○○○○○○○○○○○○○○9○○○

位律師廻複

生活常識_百科知識_各類知識大全»C趣味程序百例(18)1~9分成1:2:3的三個3位數

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情