[编程题]abc
  • 热度指数:55847 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c的值。

输入描述:
题目没有任何输入。


输出描述:
请输出所有满足题目条件的a、b、c的值。
a、b、c之间用空格隔开。
每个输出占一行。
示例1

输入

输出

%matlab代码
for a =1:9
    for b=1:9
        for c=1:9
            if a*100+b*10+c+b*100+c*10+c==532
                fprintf('%d %d %d\n',a,b,c);
            end
        end
    end
end
发表于 2020-04-07 18:17:52 回复(1)
#include<iostream>
using namespace std;

//返回3位整数abc
int number(int a, int b, int c){
    return 100*a+10*b+c;
}

int main(){
    //前提条件:a小于等于5,b小于等于5,c等于1或6
    for(int a=0; a<=5; a++){
        for(int b=0; b<=5; b++){
            int c=1;
            if(number(a,b,c)+number(b,c,c)==532)
                cout<<a<<" "<<b<<" "<<c<<endl;
            c=6;
            if(number(a,b,c)+number(b,c,c)==532)
                cout<<a<<" "<<b<<" "<<c<<endl;
        }
    }
     
    return 0;
}

发表于 2020-01-09 15:40:07 回复(0)
#include<stdio.h>
int main() {
    int n, m;
    for (int i = 0; i < 6;i++) {
        for (int j = 0; j < 6; j++) {
            for (int k = 0; k < 10; k++) {
                int abc = i * 100 + j * 10 + k;
                int bcc = j * 100 + k * 10 + k;
                if (abc + bcc == 532)printf("%d %d %d", i, j, k);
            }
        }
    }
    return 0;
}

发表于 2018-03-18 15:43:20 回复(1)
#include<stdio.h>
int main(){
	printf("3 2 1\n");
}

发表于 2017-08-04 09:38:11 回复(40)
for i in range(1, 6):
    for j in range(1, 6):
        for k in range(10):
            if i * 100 + j * 10 + k + j * 100 + k * 11 == 532:
                print(str(i) + " " + str(j) + " " + str(k))

python solution.

发表于 2017-09-08 11:19:53 回复(0)
public class Main{
public static void main(String[] args) {
    
    int a,b,c;
    //a*100+b*110+c*12=532
    for(a=1;a<6;a++){
      for(b=1;b<6;b++){
         for(c=0;c<10;c++){
        if (a*100+b*110+c*12==532)
            System.out.println(a+" "+b+" "+c);
      }
      }
    }
    
}
}

发表于 2017-07-14 20:42:44 回复(2)
#include <stdio.h>

int main(){
    int i,bcc,a,b,c;
    for(i=0;i<=532;++i){
        bcc=532-i;
        //若十位与个位相同,判断和是否532
        if(bcc/10%10 == bcc%10){
            a=i/100;
            c=bcc%10;
            b=bcc/100;
            
            if(a*100+b*10+c + bcc==532)
                printf("%d %d %d\n",a,b,c);
        }
    }
    return 0;
}

发表于 2018-01-09 16:10:17 回复(0)
c++纯暴力解法,使用三重循环
#include<iostream>
using namespace std;
int main()
{
    int a, b, c;
    for (a = 1; a <= 9; a++)
    {
        for (b = 1; b <= 9; b++)
        {
            for (c = 0; c <= 9; c++)
            {
                if (a * 100 + b * 10 + c + b * 100 + c * 10 + c == 532)
                {
                    cout << a << " " << b << " " << c;
                    cout<<endl;
                }
            }
        }
    }
}

发表于 2019-01-21 11:04:19 回复(1)
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{   int num=0;
    int record[100];
    for(int i=0;i<100;i++)
    record[i]=0;
    for(int a=1;a<=4;a++){
        for(int b=0;b<=4;b++){
            int c=1;
            if((100*a+100*b+10*b+c*10+2*c)==532){
                record[num++]=(a*100+b*10+c);
                
            }
            int d=6;
            if((100*a+100*b+10*b+d*10+2*d)==532){
                record[num++]=(a*100+b*10+d);//用巧妙的方法保存数字
                
            }
        }
    }
    for(int i=0;i<num;i++){
        printf("%d %d %d\n",record[i]/100,(record[i]%100)/10,record[i]%10);
    }
            
    system("PAUSE");
    return EXIT_SUCCESS;
}

发表于 2018-03-12 14:25:34 回复(0)
5*5*10种组合,暴力解决。实际上只有一组解。
#include <bits/stdc++.h>
using namespace std;
int main(){
	int abc,bcc;
	char str[10]="",a,b,c;
	for(a='1';a<='5';++a){
		for(b='1';b<='5';++b){
			for(c='0';c<='9';++c){
				sprintf(str,"%c%c%c",a,b,c);
				sscanf(str,"%d",&abc);
				sprintf(str,"%c%c%c",b,c,c);
				sscanf(str,"%d",&bcc);
				if (abc+bcc==532) printf("%c %c %c\n",a,b,c);
			}
		}
	}
	return 0;
}
 


发表于 2016-08-31 14:21:24 回复(0)
int a, b, c;
    for (a = 0; a <= 9; a++) 
        for (b = 0; b <= 9; b++) 
            for (c = 0; c <= 9; c++) 
int a = 0, b = 0, c = 0;
    for ( ; a <= 9; a++)
        for ( ; b <= 9; b++)
            for ( ; c <= 9; c++)
这两个理论上应该是一样的,可是为什么只有第一个才能打印出结果,而第二个不行?
求大神解答!!!!!!

#include <iostream>

using namespace std;

int main () {
    int a, b, c;
    for (a = 0; a <= 9; a++) {
        for (b = 0; b <= 9; b++) {
            for (c = 0; c <= 9; c++) {
                if ((a * 100 + b * 110 + c * 12) == 532) {
                    printf ("%d %d %d\n", a, b, c); 
                
            }
        }
    }
    return 0;
}


发表于 2022-01-15 21:38:59 回复(1)
#include<stdio.h>
int main(){
int a=0,b=0,c=0,sum1,sum2;
    while(a<10){
     while(b<10){
      for(int i=0;i<10;i++){
          sum1=a*100+b*10+i;
         sum2=sum1+(100*b+10*i+i);
         if(sum2==532){
             printf("%d %d %d\n",a,b,i);
         }
     }
         b++;
     }
        a++;
        b=0;
    }
}
发表于 2021-04-03 17:42:13 回复(0)
暴力解法,但考虑到都是三位数,记得注意边界即可
#include<iostream>
using namespace std;
int main() {
    int a, b, c;
    int count = 0;//计数,计算有多少个满足要求的数
    int arr[20];
    for (int i = 1; i<5; i++) {
        a = i;
        for (int j = 1; j<5; j++) {
            b = j;
            if ((532 - (a * 100 + b * 10 + b * 100)) % 12 == 0 && (532 - (a * 100 + b * 10 + b * 100)) / 12 >= 0
                && (532 - (a * 100 + b * 10 + b * 100)) / 12 <= 9) {
                arr[count] = a * 100 + b * 10 + (532 - (a * 100 + b * 10 + b * 100)) / 12;
                count++;
            }
        }
    }
    for (int i = 0; i < count; i++) {
        cout << arr[i] / 100 << ' ' << arr[i] / 10 - 10 * (arr[i] / 100) << ' ' << arr[i] - 10 * (arr[i] / 10) << endl;
    }
}

发表于 2019-02-05 16:27:36 回复(0)
#include <iostream>
using namespace std;

int main()
{
    cout<<"3 2 1"<<endl;
    return 0;
}

发表于 2018-03-01 11:39:09 回复(3)
#include <iostream>
using namespace std;
int main(){
    for (int i=0;i<=9;i++)
         for (int j=0;j<=9;j++)
              for (int k=0;k<=9;k++){
                  if(i*100+j*110+k*12==532)
                      cout<<i<<" "<<j<<" "<<k;
              }
}
发表于 2018-02-07 08:43:44 回复(0)
#include<stdio.h>
int main()
{
    int a,b,c;
    c=1;
    while(c<10)
        if(c<5)
    {
        b=3-c;
        if(b>4) break;
        a=5-b;
        printf("%d %d %d\n",a,b,c);
        c+=5;
    }
    else
    {
        b=12-c;
        if(b>4) break;
        a=4-b;
        printf("%d %d %d",a,b,c);
        c+=5;
    }
    return 0;
}

发表于 2018-01-27 15:14:01 回复(0)
#include<stdio.h>
int main(void) {
	short a, b, c; a = b = c = 0;
	for (a = 0; a < 6; a++)
		for (b = 0; b < 6; b++)
			for (c = 0; c < 10; c++)
				if ((a * 100 + b * 110 + c * 12) == 532)
					printf("%d %d %d\n", a, b, c);
	return 0;
}

发表于 2017-03-22 14:44:37 回复(0)
Java 解法
public class Main {
    public static void main(String[] args) {
        for (int a = 0; a < 10; a++) {
            for (int b = 0; b < 10; b++) {
                for (int c = 0; c < 10; c++) {
                    if (a*100+b*110+c*12==532)
                        System.out.println(a+" "+b+" "+c);
                }
            }
        }
    }
}


发表于 2020-03-06 11:33:22 回复(0)
#include <iostream>
using namespace std;
int main(){
    int a,b,c;
    for(c=0;c<9;c++){
        if((c*2)%10==2){
            for(b=1;b<9;b++){
                if((b+c+(c*2)/10)%10==3){
                    for(a=1;a<9;a++){
                        if((a+b+(b+c+(c*2)/10)/10)==5)
                            cout<<a<<" "<<b<<" "<<c<<endl;
                    }
                }
            }
        }
    }
    return 0;
}
发表于 2017-11-27 18:12:15 回复(0)
放水
发表于 2016-07-18 22:12:09 回复(0)