三角数(100

计算大于等于n的下一个三角数。所谓“三角数”就是某个数量的点能排列成一个对称三角形,如1、3、6、10、15、21、28、36、45...。

输入一个整数n, n>=1。

输出一个整数m,大于等于n的下一个三角数。注意保证输出结果在整型范围内。

#include <bits/stdc++.h> // 包含所有标准库(实际使用中建议只包含需要的标准库)
using namespace std;    // 使用标准命名空间,简化代码书写

int main() {
    long long n, i;      // 定义长整型变量 n(目标值)和 i(循环计数器)

    cin >> n;            // 从标准输入读取一个长整型值 n

    // 使用循环寻找满足条件的最大 i
    for (i = 0; (1 + i) * i / 2 < n; i++) {
        // 循环条件:检查三角形数 (1 + i) * i / 2 是否小于 n
        // 三角形数是前 i 个自然数的和,公式为 i * (i + 1) / 2
    }

    // 输出满足条件的最大三角形数 (1 + i) * i / 2
    cout << (1 + i) * i / 2;

    return 0; // 程序正常结束
}
  1. 输入:

    • 从标准输入读取一个长整型值 n
  2. 计算:

    • 使用 for 循环来查找最大的 i,使得 (1 + i) * i / 2(即第 i 个三角形数)小于 n
    • i 从 0 开始递增,直到 (1 + i) * i / 2 大于或等于 n
  3. 输出:

    • 输出满足条件的最大三角形数,即 (1 + i) * i / 2

空心菱形(100分)

打印边长为n的空心菱形。

输入一行一个整数n(1<=n<=50)。

打印边长为N的空心菱形(空心菱形的打印形式见样例),每行均以'*'结尾,每行的’*’之前如果需要用空格补齐对齐,’*’之后不要有多余的空格。

#include <bits/stdc++.h> // 包含所有标准库(实际使用中建议只包含需要的标准库)
using namespace std;    // 使用标准命名空间,简化代码书写

int main() {
    int n, i, j, k;      // 定义整型变量 n(输入的大小),i, j 和 k(循环计数器)

    cin >> n;            // 从标准输入读取一个整数 n

    // 打印上边界的 +
    cout << setw(n) << "+" << endl;

    // 打印中间的部分,逐行增加 +
    for (i = 1; i < n - 1; i++) {
        // 打印每行的第一个 +
        cout << setw(n - i) << "+";
        // 打印每行的第二个 +
        cout << setw(2 * i) << "+" << endl;
    }

    // 打印下边界的 +,宽度为 2*n-2
    cout << "+" << setw(2 * n - 2) << "+" << endl;

    // 打印底部的中间部分,逐行减少 +
    for (i = 1; i < n - 1; i++) {
        // 打印每行的第一个 +
        cout << setw(i + 1) << "+";
        // 打印每行的第二个 +,根据宽度设置
        cout << setw(-2 * i + 2 * n - 2) << "+" << endl;
    }

    // 打印下边界的 +
    cout << setw(n) << "+" << endl;

    return 0; // 程序正常结束
}
  1. 输入:

    • 从标准输入读取一个整数 n,表示图形的大小。
  2. 输出图形:

    • 上边界: 打印一个由一个 + 组成的行,其宽度为 n
    • 中间部分的上半部分: 逐行打印,每行由两个 + 组成,左侧 + 的位置逐行右移,右侧 + 的位置逐行增加。
    • 下边界: 打印一个由两个 + 组成的行,中间的空格宽度为 2 * n - 2
    • 中间部分的下半部分: 逐行打印,每行由两个 + 组成,左侧 + 的位置逐行右移,右侧 + 的位置逐行减少。
    • 下边界: 打印一个由一个 + 组成的行,其宽度为 n

1求a+aa+aaa+…+aa…a的值(100分)

求a+aa+aaa+…+aa…a的值,其中a是一个数字,最后一个a有n位。

依次输入正整数a和n,其中1<=a<=9,1<=n<=18

输出格式:

输出a+aa+aaa+…+aa…a的值

#include <bits/stdc++.h> // 包含所有标准库(实际使用中建议只包含需要的标准库)
using namespace std;    // 使用标准命名空间,简化代码书写

int main() {
    long long int a, i, j, n, s = 0; // 定义长整型变量 a(初始值)、i(循环计数器)、j(保存初始值的副本)、n(循环次数)、s(累加和)
    
    cin >> a >> n;  // 从标准输入读取两个长整型值,a(起始数字)和 n(重复次数)
    
    j = a;  // 将 a 的值赋给 j,j 用于保存 a 的初始值
    
    // 循环 n 次,每次将当前的 a 累加到 s 中
    for (i = 1; i <= n; i++) {
        s = s + a;       // 将当前的 a 加到总和 s 中
        a = j + a * 10;  // 更新 a 为当前 a 乘以 10 后加上 j,形成下一个要累加的数
    }
    
    cout << s;  // 输出累加和 s

    return 0;   // 程序正常结束
}
  1. 输入:

    • 从标准输入读取两个长整型值 a 和 n
      • a 是起始数字。
      • n 是累加次数。
  2. 处理逻辑:

    • 通过 j = a 保存 a 的初始值,用于在循环中计算新的 a 值。
    • 在循环中,每次将当前的 a 加到累加和 s 中。
    • 更新 a 为当前 a 乘以 10 后加上初始值 j,以生成下一个要累加的数字。
  3. 输出:

    • 输出累加和 s,即将所有生成的数字之和
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐