永发信息网

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

答案:6  悬赏:80  手机版
解决时间 2021-02-05 09:07
  • 提问者网友:蓝琪梦莎
  • 2021-02-04 23:07
输入描述:无 输出描述描述:输出数据为多组,每组两个整形数;
最佳答案
  • 五星知识达人网友:拾荒鲤
  • 2021-02-05 00:26
如果你的输出格式是abc cba那就是这个
#include <iostream>

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++
全部回答
  • 1楼网友:独行浪子会拥风
  • 2021-02-05 04:31
就是一个三层循环 优化的话可以判断 c+a 个位必须是3 等等
  • 2楼网友:低音帝王
  • 2021-02-05 03:40
for (int a = 0; a <= 9; a++) { for (int b = 0; b <= 9; b++) { for (int c = 0; c <= 9; c++) { if ((a * 100 + b * 10 + c) + (c * 100 + b * 10 + a) == 1333) //简单点也可以化简为 if (101 * (a + c) + 20 * b == 1333) system.out.println(a + "" + b + "" + c); } } }
  • 3楼网友:天凉才是好个秋
  • 2021-02-05 03:04
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楼网友:胯下狙击手
  • 2021-02-05 02:21
这个程序输出为无 为什么呢,因为如果abc为整数的话,那么abc+abc=1333是不可能的。这个算数类似于2abc=1333,1333/2 是个小数点,根本除不尽啊。也就是说a,b,c不可能是整数。 程序思路是这样的 #include<stdio.h> #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试下对不对。
  • 5楼网友:轻熟杀无赦
  • 2021-02-05 01:11
输出的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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯