ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++算法代码——三连击[NOIP1998 普及组]

2021-02-03 19:35:36  阅读:397  来源: 互联网

标签:连击 题目 33 C++ 三位数 int 答案 NOIP1998 九个


题目来自:https://www.luogu.com.cn/problem/P1008

题目背景

本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。

题目描述

将 1, 2, \ldots , 91,2,…,9 共 99 个数分成 33 组,分别组成 33 个三位数,且使这 33 个三位数构成 1 : 2 : 31:2:3 的比例,试求出所有满足条件的 33 个三位数。

输入格式

输出格式

若干行,每行 33 个数字。按照每行第 11 个数字升序排列。

输入输出样例

输入 #1   无   输出 #1   192 384 576
* * *
...

* * *
(输出被和谐了)

作者分析:在这里我们判断九个数不同我们只需求出九个数的和和九个数旳积是否分别得45和362880就行了。

#include <cstdio> using namespace std;
int main(){     for (int a = 1;a <= 9;a++)     for (int b = 1;b <= 9;b++)     for (int c = 1;c <= 9;c++)     for (int d = 1;d <= 9;d++)     for (int e = 1;e <= 9;e++)     for (int f = 1;f <= 9;f++)     for (int g = 1;g <= 9;g++)     for (int h = 1;h <= 9;h++)     for (int i = 1;i <= 9;i++)         if (a + b + c + d + e + f + g + h + i == 45 && a * b * c * d * e * f * g * h * i == 362880){             if(d * 100 + e * 10 + f == (a * 100 + b * 10 + c) * 2 && g * 100 + h * 10 + i == (a * 100 + b * 10 + c) * 3){                 printf("%d %d %d\n",a * 100 + b * 10 + c,d * 100 + e * 10 + f,g * 100 + h * 10 + i);             }         } }

  代码有点长……有更好的解法

标签:连击,题目,33,C++,三位数,int,答案,NOIP1998,九个
来源: https://www.cnblogs.com/linyiweiblog/p/14368932.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有