石头数字的总和

Manasa 和 她的朋友出去徒步旅行。她发现一条小河里边顺序排列着带有数值的石头。她开始沿河而走,发现相邻两个石头上的数值增加 a 或者 b. 这条小河的尽头有一个宝藏,如果Manasa能够猜出来最后一颗石头上的数值,那么宝藏就是她的。假设第一个石头的上数值为0,找出最后一个石头的可能的所有数值。

输入格式

第一行包含整数 T, 代表测试数据的组数。 
每组数组包含三行: 
第一行包含 n,代表石头的个数 
第二行包含 a
第三行包含 b

输出格式 升序输出最后一颗石头上所有可能的数值, 用空格隔开。

取值范围 
1 ≤ T ≤ 10 
1 ≤ nab ≤ 103

样例输入 00

2
3
1
2
4
10
100

样例输出 00

2 3 4
30 120 210 300

样例解析

第一组数据所有可能的数值为:

  1. 0,1,2
  2. 0,1,3
  3. 0,2,3
  4. 0,2,4

所以答案是: 2 3 4.

第二组数据所有可能的数值为:

  1. 10, 20, 30
  2. 10, 20, 120
  3. 10, 110, 210
  4. 100, 200, 300

所有答案是: 30 120 210 300

解决代码:

#include <stdio.h>

int main(int argc, const char * argv[])
{
    // insert code here...

    int testCount = 0;

    int depth = 4;
    int a = 10;
    int b = 100;

    scanf("%d", &testCount);
    for (int i=0; i<testCount; i++) {
        scanf("%d", &depth);
        scanf("%d", &a);
        scanf("%d", &b);

        if (depth == 0) {
            printf("%d\n", 0);
            continue;
        }

        int sum = 0;
        depth = depth - 1;

        //是较大值在前面,这样输出结果是升序的。
        if (a<b) {
            int tmp = a;
            a = b;
            b = tmp;
        }

        if (a == b) {
            printf("%d\n", a * depth);
            continue;
        }

        for (int i=0; i<=depth; i++) {
            int sumA = a * i;
            int sumB = b * (depth - i);
            sum = sumA + sumB;
            printf("%d ", sum);
            sum = 0;
        }
        printf("\n");
    }
    return 0;
}

代码

石头数字的总和

时间: 2024-12-25 02:50:40

石头数字的总和的相关文章

蓝桥杯 算法训练 ALGO-124 数字三角形

算法训练 数字三角形 时间限制:1.0s   内存限制:256.0MB 问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ●三角形中的数字为整数0,1,-99: . (图3.1-1) 输入格式 文件中首先读到的是三角形的行数. 接下来描述整个三角形 输出格式 最大总和(整数) 样例输入 573 88 1 02 7 4 44 5 2 6 5 样例输出 3

【递归】数字三角形 简单dp

[递归]数字三角形 题目描述 对于大多数人来说,“我们是这么的正常,因此也就这么的平庸.”而天才总是与众不同的,所以当邪狼问修罗王:“老大,你蹲在那儿一动不动看了有半个小时了,蚂蚁有那么好看吗?” 修罗王是这样回答的:“我在思索人生的意义,你看这蚂蚁的面前有无数的道路选择,但它不知道选择哪条路可以到达目标,也不知道哪条路上有更多的食物,更不知道现在选择的道路对它以后的影响……” 如图所示,有一个层数为n(n≤1000)的数字三角形.现有一只蚂蚁从顶层开始向下走,每走下一级时,可向左下方向或右下方

Project Euler 80:Square root digital expansion 平方根数字展开

Square root digital expansion It is well known that if the square root of a natural number is not an integer, then it is irrational. The decimal expansion of such square roots is infinite without any repeating pattern at all. The square root of two i

C语言 &#183; 数字三角形 &#183; 算法训练

问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ●三角形中的数字为整数0,1,-99: . (图3.1-1) 输入格式 文件中首先读到的是三角形的行数. 接下来描述整个三角形 输出格式 最大总和(整数) 样例输入 573 88 1 02 7 4 44 5 2 6 5 样例输出 30 1 #include<stdio.h> 2 int main

蓝桥杯-数字游戏

问题描述 栋栋正在和同学们玩一个数字游戏. 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈.栋栋首先说出数字1.接下来,坐在栋栋左手边的同学要说下一个数字2.再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4.下一个同学要往下数三个数,说7.依次类推. 为了使数字不至于太大,栋栋和同学们约定,当在心中数到 k-1 时,下一个数字从0开始数.例如,当k=13时,栋栋和同学们报出的前几个数依次为: 1, 2, 4, 7, 11, 3, 9, 3, 11, 7. 游戏进行了一会

P1044 - 数字三角形

P1044 - 数字三角形 From Admin    Normal (OI)总时限:10s    内存限制:128MB    代码长度限制:64KB 背景 Background 09年 USACO 11月月赛  铜牌第一道 描述 Description 示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大. 每一步可沿左斜线向下或右斜线向下走: 1<三角形行数<25: 三角形中的数字为整数<1000: 输入格式 InputFormat 第一行

ACM找出一串数字是否能被分成两部分使其中一部分全部为负数,加上另一部分可以为0

Description Most financial institutions had become insolvent during financial crisis and went bankrupt or were bought by larger institutions, usually by banks. By the end of financial crisis of all the financial institutions only two banks still cont

数字三角形(蓝桥杯 动态规划)

问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ●三角形中的数字为整数0,1,-99: . (图3.1-1) 输入格式 文件中首先读到的是三角形的行数. 接下来描述整个三角形 输出格式 最大总和(整数) 样例输入 573 88 1 02 7 4 44 5 2 6 5 样例输出 30 从最下面往上找,由局部最优解找整体最优解. #include<st

蓝桥杯历届试题之数字游戏

问题描述 栋栋正在和同学们玩一个数字游戏. 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈.栋栋首先说出数字1.接下来,坐在栋栋左手边的同学要说下一个数字2.再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4.下一个同学要往下数三个数,说7.依次类推. 为了使数字不至于太大,栋栋和同学们约定,当在心中数到 k-1 时,下一个数字从0开始数.例如,当k=13时,栋栋和同学们报出的前几个数依次为: 1, 2, 4, 7, 11, 3, 9, 3, 11, 7. 游戏进行了一会