已知abc+cba=1333,其中a,b,c均为一位数,编程求出所有满足条件的a,b,c所有组合。 (知识点:控制语句)

2024-12-21 08:23:57
推荐回答(5个)
回答1:

输出的abc的组合结果


    for a=0,9 do
        for b=0,9 do
            for c=0,9 do
                if a*100+b*10+c + c*100+b*10+a == 1333 then
                    print(string.format("a:%d,b:%d,c:%d\n",a,b,c))
                end
            end
        end
    end

回答2:

这个程序输出为无

为什么呢,因为如果abc为整数的话,那么abc+abc=1333是不可能的。这个算数类似于2abc=1333,1333/2 是个小数点,根本除不尽啊。也就是说a,b,c不可能是整数。

程序思路是这样的

#include

#define MAXDIGIT 1333

main()
{
int a, b, c,sum;

for(a = 1; a <= MAXDIGIT; ++a)
for(b = 1; b <= MAXDIGIT; ++b)
for(c = 1; c <= MAXDIGIT; ++c){

sum = a*b*c + c*b*a;

if(sum == MAXDIGIT) {

printf("%d %d,%d,%d\n",sum, a, b, c );

}

}
}

如果想输出检查的话你将1333改成1332试下对不对。

回答3:

for(a=0;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c=0;c<=9;c++)
{
//把 abc cba 连接起来 转成整形 判断
if((a*100+b*10+c)+(c*100+b*10+a)==1333)
//打印 abc cba
}
}
}

楼上的应该是这样 不过我的话,可能会用100到999的循环搞定
999-100=899
10*10*10=1000,
好像我的方法会比较高效哦,呵呵

回答4:

如果你的输出格式是abc cba那就是这个
#include

using namespace std;

int main()
{
int a, b, c, d, e;
for (a=0; a<10; a++)
{
for (b=0; b<10; b++)
{
for (c=0; c<10; c++)
{
if (a*100+b*10+c + c*100+b*10+a == 1333)
{
printf("%d%d%d %d%d%d\n", a, b, c,c,b,a);
}
}
}
}
system("pause");
return 0;
}
把4楼的改了下,适应c++

回答5:

#include

using namespace std;

int main() {
int a, b, c, d, e;
for (a=0; a<10; a++) {
for (b=0; b<10; b++) {
for (c=0; c<10; c++) {
if (a*100+b*10+c + c*100+b*10+a == 1333) {
printf("%d %d %d\n", a, b, c);
}
}
}
}
system("pause");
return 0;
}
这样的