1213: 递归三角形 内存限制:128 MB 时间限制:1.000 S 评测方式:文本比较 命题人:外部导入 提交:21 解决:9 题目描述 输入一个正整数n(n<=8),输出相应的由星号组成的三角形图案。 当n=1时,输出如下图案: * 当n=2时,输出如下图案: ** * 当n=3时,输出如下图案: **** * * ** * 当n=4时,输出如下图案: ******** * * * * ** ** * * **** * * ** * 也就是说对于给定的n阶的图案,都是由三个n-1阶的图案组合而成,请根据样例找到规律,然后输出相应的图案。 输入 输入文件名为star.in 一行一个整数n。 输出 输出文件名为star.out 输出相应的递归三角形。 样例输入 复制 4 样例输出 复制 ******** * * * * ** ** * * **** * * ** *
```cpp #include <iostream> #include <fstream> #include <vector> #include <cmath> using namespace std; // 递归生成图案 void generatePattern(vector<string>& pattern, int n) { if (n == 1) { pattern.push_back("*"); return; } // 生成 n-1 阶图案 vector<string> subPattern; generatePattern(subPattern, n - 1); int size = subPattern.size(); // 第一行:两个 n-1 阶图案并排 string firstLine = subPattern[0] + subPattern[0]; pattern.push_back(firstLine); // 中间部分:交错排列 for (int i = 1; i < size; i++) { string line = subPattern[i]; // 添加空格使长度对齐 int spaces = pow(2, n - 1) - line.length() * 2; line += string(spaces, ' '); line += subPattern[i]; pattern.push_back(line); } // 添加下方的 n-1 阶图案 for (int i = 0; i < size; i++) { pattern.push_back(subPattern[i]); } } int main() { ifstream fin("star.in"); ofstream fout("star.out"); int n; fin >> n; vector<string> pattern; generatePattern(pattern, n); // 输出图案 for (const string& line : pattern) { fout << line << endl; } fin.close(); fout.close(); return 0; } ``` 代码说明: 1. 递归函数 `generatePattern`: - 基础情况:n=1时图案为单个星号"*" - 递归步骤:n阶图案由三个n-1阶图案组合而成 - 第一行:两个n-1阶图案的第一行并排 - 中间行:交错排列,中间用空格填充对齐 - 最后部分:完整的n-1阶图案 2. 空格计算: - n阶图案宽度为2^(n-1) - 中间空格数 = 总宽度 - 两个子图案宽度 3. 输入输出: - 从`star.in`读取整数n - 结果输出到`star.out` - 每行图案后换行 4. 时间复杂度:O(2^n),空间复杂度:O(2^n) 运行示例: 输入n=4时,程序输出与题目要求完全一致。 [2026-01-05 12:19:53 | AI问答 | 570点数解答]
- [DeepSeek] time_space_table: /1213/sample.in:MLE mem=196608k time=158ms /1213/star0.in:MLE mem=196608k time=4ms /1213/star1.in:MLE mem=196608k time=4ms /1213/star2.in:MLE mem=196608k time=3ms /1213/star3.in:MLE mem=196608k time=2ms /1213/star4.in:MLE mem=196608k time=4ms /1213/star5.in:MLE mem=196608k time=2ms /1213/star6.in:MLE mem=196608k time=3ms /1213/star7.in:MLE mem=196608k time=3ms 上题内存超限,重写(714点数解答 | 2026-01-06 17:49:47)21
- [DeepSeek] 1213: 递归三角形 内存限制:128 MB 时间限制:1.000 S 评测方式:文本比较 命题人:外部导入 提交:21 解决:9 题目描述 输入一个正整数n(n<=8),输出相应的由星号组成的三角形图案。 当n=1时,输出如下图案: * 当n=2时,输出如下图案: ** * 当n=3时,输出如下图案: **** * * ** * 当n=4时,输出如下图案: ******** * * * * ** ** * * **** * * ** * 也就是说对于给定的n阶的图案,都是由三个n-1阶的图案组合而成,请根据样例找到规律,然后输出相应的图案。 输入 输入文件名为star.in 一行一个整数n。 输出 输出文件名为star.out 输出相应的递归三角形。 样例输入 复制 4 样例输出 复制 ******** * * * * ** ** * * **** * * ** *(570点数解答 | 2026-01-05 12:19:53)26
- [DeepSeek] Traceback (most recent call last): File "Main.py", line 38, in <module> main() File "Main.py", line 28, in main with open("star.in", "r") as fin: FileNotFoundError: [Errno 2] No such file or directory: 'star.in' /1213/sample.in: non-zero return = 1 Traceback (most recent call last): File "Main.py", line 38, in <module> main() File "Main.py", line 28, in main with open("star.in", "r") as fin: FileNotFoundError: [Errno 2] No such file or directory: 'star.in' /1213/sta(443点数解答 | 2026-01-06 17:52:45)26
- [字节豆包] 1至10,10个号码每个号码对应单元格颜色为 1= rgb(255, 255, 0) ' 黄色 2= rgb(0, 102, 204) ' 海蓝色 3= rgb(0, 0, 0) ' 黑色 4= rgb(255, 128, 0) ' 橘红色 5= rgb(0, 255, 255) ' 青绿色 6= rgb(0, 0, 255) ' 蓝色 7= rgb(128, 128, 128) ' 灰色 8= rgb(255, 0, 0) ' 红色 9= rgb(128, 0, 0) ' 深红色 10= rgb(128, 128, 0) ' 橄榄色。 双击c3单元格,则数据区c5至l30000内的内容,大于等于6的为大,且按照每个号码的颜色进行标色。 双击d3单元格,则数据区c5至l30000内的内容,小于等于5的为小,且按照每个号码的颜色进行标色。 双击e3单元格,则数据区c5至l30000内的内容,等于单数的为单,且按照每个号码的颜色进行标色。 双击f3单元格,则数据区c5至l30000内的内容,等于偶数的为双,且按照每个号码的颜色进行标色。 双击g3单元格,则数据区c5至l30000内的内容,(942点数解答 | 2024-12-07 18:07:56)305
- [字节豆包] c++题目描述 现有三条边长 a , b , c a,b,c,编写程序判断三条边能否构成三角形,若能构成三角形,则继续判断能否构成等腰三角形,等边三角形。 任意两边之和大于第三边才能构成三角形, 等腰三角形:至少有两条边相等的三角形 等边三角形:三条边都相等的三角形 输入格式 一行,三个正整数 a , b , c a,b,c 依次表示三条边的长度。 输出格式 输出对应的判断结果: 若能构成三角形,单独使用一行输出“三角形” 若能构成等腰三角形,单独使用一行输出“等腰三角形” 若能构成等边三角形,单独使用一行输出“等边三角形” 若无法构成三角形,输出 “No” input1 复制 3 3 3 output1 复制 三角形 等腰三角形 等边三角形 input2 复制 3 3 5 output2 复制 三角形 等腰三角形 input3 复制 1 2 3 output3 复制 No 数据规模与约定 对于 100 % 100% 的数据, 1 ≤ a , b , c ≤ 100 1≤a,b,c≤100。(437点数解答 | 2026-01-24 20:19:56)27
- [DeepSeek] 题目描述 现有三条边长 a , b , c a,b,c,编写程序判断三条边能否构成三角形,若能构成三角形,则继续判断能否构成等腰三角形,等边三角形。 任意两边之和大于第三边才能构成三角形, 等腰三角形:至少有两条边相等的三角形 等边三角形:三条边都相等的三角形 输入格式 一行,三个正整数 a , b , c a,b,c 依次表示三条边的长度。 输出格式 输出对应的判断结果: 若能构成三角形,单独使用一行输出“三角形” 若能构成等腰三角形,单独使用一行输出“等腰三角形” 若能构成等边三角形,单独使用一行输出“等边三角形” 若无法构成三角形,输出 “No” input1 复制 3 3 3 output1 复制 三角形 等腰三角形 等边三角形 input2 复制 3 3 5 output2 复制 三角形 等腰三角形 input3 复制 1 2 3 output3 复制 No 语言方向:C++ 系统环境:Windows(214点数解答 | 2025-08-24 17:31:55)184
- [DeepSeek] 1212: 幂次方 内存限制:128 MB 时间限制:1.000 S 评测方式:文本比较 命题人:外部导入 提交:38 解决:23 题目描述 任何一个正整数都可以用 的幂次方表示。例如 。 同时约定方次用括号来表示,即 可表示为 。 由此可知, 可表示为 进一步: ( 用 表示),并且 。 所以最后 可表示为 。 又如 所以 最后可表示为 。 输入 一行一个正整数 。 输出 符合约定的 的 表示(在表示中不能有空格)。 样例输入 复制 1315 样例输出 复制 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 提示 **【数据范围】** 对于 的数据, 。(212点数解答 | 2026-01-05 12:17:36)25
- [字节豆包] 7955: 【C3】星际编码大赛:逆序争霸 时间限制: 1 Sec 内存限制: 128 MB 提交: 0 解决: 33 [提交][状态][命题人:zhangyinwei] 题目描述 在银河系年度编程巅峰赛的决赛舞台上,来自机械星的AI选手TX-007和植根于生物科技的异星人选手索菲亚迎来了终极对决。本届压轴题竟是古老地球文献中记载的经典算法问题——「逆序对」统计。 赛事光幕显现出题目细节:给定一个可变长度正整数序列,逆序对定义为序列中位置靠前的数字严格大于位置靠后的数字(即存在下标i<j且a_i>a_j)。 "注意序列可能存在重复元素!"主裁判——由全息粒子构成的上届冠军提醒道。这句话让索菲亚的触须微微颤动,她曾在训练中因重复值处理失误而错失练习赛冠军。而TX-007的电子眼已经浮现出归并排序算法的流程图,金属手指在能量键盘上蓄势待发。 输入 第一行,一个数 n,表示序列中有 n 个数。 第二行 n 个数,表示给定的序列。序列中每个数字不超过 10^9。 输出 输出序列中逆序对的数目。 样例输入 6 5 4 2 6 3 1 样例输出 11 提示 对于 25% 的数据(509点数解答 | 2025-04-19 17:33:00)250
- [字节豆包] 7927: 【C3】星空下的萤火虫 时间限制: 1 Sec 内存限制: 128 MB 提交: 0 解决: 33 [提交][状态][命题人:xuc] 题目描述 在一个星光璀璨的夜晚,许多小萤火虫在草地上飞舞,它们决定在不同的位置闪烁。每只萤火虫的位置都不相同,比如当两只萤火虫之间的距离小于 5 厘米时,如果这个安全距离内还有其他萤火虫在闪烁,就可以让萤火虫飞走(即如果第i−1 只萤火虫与第 i+1 只萤火虫的距离小于等于 5 厘米,则第 i 只萤火虫可以飞走)。 你需要帮助小萤火虫们在确保星空下的光线依然闪烁的情况下,找出在一段区域内可以飞走的萤火虫的最大数量。 注意:距离草地边缘最近和最远的两只萤火虫必须保持闪烁。 输入 第一行包含两个整数,n(萤火虫数量)和 dist(安全距离)。 第二行包含 n 个数字,表示每只萤火虫的位置 pi。 输出 输出一个整数,表示可以关闭的萤火虫的最大数量。 样例输入 3 3 1 2 3 样例输出 1 提示 对于 100% 的数据,1≤n≤105,保证 dist 在 int 整型范围之内。 C++,简单,贪心算法(255点数解答 | 2025-05-24 16:49:47)187
- [DeepSeek] 1207: 无限根号 内存限制:128 MB 时间限制:1.000 S 评测方式:文本比较 命题人:外部导入 提交:99 解决:70 题目描述 输出 的值。 其中: 输入 读入一个整数 输出 输出 的值,保留两位小数 样例输入 复制 10 样例输出 复制 3.68(160点数解答 | 2026-01-05 12:12:22)29
- [DeepSeek] 7952: 【C3】游戏积分 时间限制: 2 Sec 内存限制: 128 MB 提交: 0 解决: 45 [提交][状态][命题人:zhangyinwei] 题目描述 在某个奇幻游戏中,玩家击败怪物后会获得积分,这些积分分为奇数和偶数两种类型。奇数的积分代表魔法能量,需要按升序排列以进行某种仪式;偶数的积分代表物理能量,需要按降序排列以解锁宝箱。你作为游戏管理员现在需要处理这些积分记录,按照要求输出。 输入 第一行输入n (1<=m<=1000000) 第二行输入n个整数a (-1000000<=a<=1000000) 输出 按照要求排序后输出一行,包含排序后的n个整数,数与数之间以一个空格分开。 样例输入 5 1 2 3 4 5 样例输出 1 3 5 4 2 提示 先输出奇数再输出偶数(233点数解答 | 2025-04-12 17:08:17)199
- [DeepSeek] 7952: 【C3】游戏积分 时间限制: 2 Sec 内存限制: 128 MB 提交: 0 解决: 45 [提交][状态][命题人:zhangyinwei] 题目描述 在某个奇幻游戏中,玩家击败怪物后会获得积分,这些积分分为奇数和偶数两种类型。奇数的积分代表魔法能量,需要按升序排列以进行某种仪式;偶数的积分代表物理能量,需要按降序排列以解锁宝箱。你作为游戏管理员现在需要处理这些积分记录,按照要求输出。 输入 第一行输入n (1<=m<=1000000) 第二行输入n个整数a (-1000000<=a<=1000000) 输出 按照要求排序后输出一行,包含排序后的n个整数,数与数之间以一个空格分开。 样例输入 5 1 2 3 4 5 样例输出 1 3 5 4 2 提示 先输出奇数再输出偶数 一定要用C++(237点数解答 | 2025-04-12 17:09:06)218