SWUST OJ 有趣的三位数(0319)

有趣的三位数(0319)

Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 158 Accepted: 62

Description

有这样一组数,每组由三个三位数组成,并且这三个数中1~9有且仅有一次,更特殊的是这三个数中,两个较小的数相加等于另外一个数(如124 659 783)。 你的任务就是查找出所有满足上述条件的组(以组出现,并且按照升序排列(每组之间以按首元素升序。对于其中的一组,三个数也按照升序排列))。

Input

no input

Output

输出所有满足题意的组(每个组的三个数之间以一个空格)。

Sample Input

Sample Output

124 659 783

125 739 864

  |

  | -------省略

  |

216 738 954

218 349 567

  |

  |

  |

Hint

Source

计算机科学与技术专业2008级程序设计竞赛

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 int main()
 5 {
 6     int a[9]={1,2,3,4,5,6,7,8,9},b,c,d;
 7     while(next_permutation(a,a+9))
 8     {
 9         b=a[0]*100+a[1]*10+a[2];
10         c=a[3]*100+a[4]*10+a[5];
11         d=a[6]*100+a[7]*10+a[8];
12         if(b+c==d&&b<=c)
13         {
14             cout<<b<<‘ ‘<<c<<‘ ‘<<d<<endl;
15         }
16     }
17 return 0;
18 }

注:b>c时 break 并不正确,231 987 654 的下一个排列 234 156 789 就终止循环了,显然不正确。

时间: 2024-12-21 13:45:49

SWUST OJ 有趣的三位数(0319)的相关文章

zzuli OJ 1076: 三位数求解

Description 已知xyz+yzz=n,其中n是一个正整数,x.y.z都是数字(0-9),编写一个程序求出x.y.z分别代表什么数字.如果无解,则输出"No Answer" 注意:xyz和yzz表示一个三位数,而不是表示x*y*z和y*z*z. Input 输入一个正整数n. Output 输出一行,包含x.y.z的值,每个数值占4列. Sample Input 532 Sample Output 3 2 1 HINT Source #include <stdio.h&g

swust oj 1026--Egg pain&#39;s hzf

题目链接:http://acm.swust.edu.cn/problem/1026/ Time limit(ms): 3000 Memory limit(kb): 65535 hzf is crazy about reading math recently,and he is thinking about a boring problem. Now there are n integers Arranged in a line.For each integer,he wants to know

SWUST OJ Euclid&#39;s Game(0099)

Euclid's Game(0099) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 1855 Accepted: 589 Description Starts with two unequal positive numbers (M,N and M>N) on the board. Two players move in turn. On each move, a player has to write on the boar

C 数字1、2、3、4用不全相等的数字组成的三位数及其个数

# include<stdio.h> int main() { int i,j,k; int x=0,y=0,z=0; for(i=1;i<5;i++) { for(j=1;j<5;j++) { for(k=1;k<5;k++) { if(!(i==j&&j==k&&i==k)) //if(i!=j&&j!=k&&i!=k)注意这段代码的表示的意思! { printf("%d%d%d  ",i

逆序的三位数C语言实现

最近在上浙江大学翁恺老师的<程序设计入门-C语言>课,翁老师那富有男性特有魅力的磁性嗓音深深吸引了我....虽然我是男的.课程首周有个测试题: 题目内容: 程序每次读入一个正三位数,然后输出逆序的数字.注意,当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7. 输入格式: 每个测试是一个3位的正整数. 输出格式: 输出逆序的数. 输入样例: 123 输出样例: 321 难度不大,很快就写出来了,在线提交了测试通过了,代码如下,写在博客上留作纪念,方便以后查看吧. P

华为机试 --- 求最大三位数

题目:输入10位0-9数字,取其中三位不同数字组合,求组合出来的最大三位数. 如输入 1 2 3 4 5 6 7 8 9 0,组合出来987最大. 测试代码如下: #include <stdio.h> #include <stdlib.h> int IsSame(int *a, int num); int main() { int i=0; int j=0; int a[10]={0}; int input =0; int length =0; int temp=0; for (i

打印出所有的&quot;水仙花数&quot;,所谓&quot;水仙花数&quot;是指一个三位数,其各位数字立方和等于该数本身。

package com.mumu.ready; public class Daffodils { // 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身. // 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. public static void main(String[] args) { for (int i = 100; i < 1000; i++) { in

有1、2、3、4四个数字,能组成多少个互不相同且一个数字中无重复数字的三位数?并把他们都输出。

/** * 有1.2.3.4四个数字,能组成多少个互不相同且一个数字中无重复数字的三位数?并把他们都输出. * */ public class Test1 { public static void main(String[] args) { int num = 0, c = 0; for (int i = 1; i <= 4; i++) { for (int j = 1; j <= 4; j++) { for (int k = 1; k <= 4; k++) { if (i != j &

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

代码: package com.liron.p1; /** * 有1.2.3.4个数字,能组成多少个互不相同且无重 * 复数字的三位数?都是多少? */ public class Topic1 { public static void main(String[] args) { int i=0; //保存百位上的数 int j=0; //保存十位上的数 int k=0; //保存各位上的数 int t=0; //保存数字个数 for(i=1;i<=4;i++){ for(j=1;j<=4;j+