「PAT乙级真题解析」Basic Level 1056 组合数的和 (问题分析+完整步骤+伪代码描述+提交通过代码)

题设给定N个非零数字, 要求计算可以组成的所有2位数之和。 由于数字非零, 所以每一个数字都可以选在个位或者十位。 如果一个数字选择放在十位, 则总和要加上它的十倍; 如果选择放在个位, 则总和要加上它本身。 所以, 总和等于每一个数字在十位所代表的值+其在个位所代表的值. 即所有数字之和 * 11

#算法#数据结构#需求分析#c语言#pat考试

Table of Contents

乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。

PAT乙级BasicLevelPractice 1056

问题分析

题设给定N个非零数字, 要求计算可以组成的所有2位数之和。 由于数字非零, 所以每一个数字都可以选在个位或者十位。 如果一个数字选择放在十位, 则总和要加上它的十倍; 如果选择放在个位, 则总和要加上它本身。 所以, 总和等于每一个数字在十位所代表的值+其在个位所代表的值. 即所有数字之和 * 11

完整描述步骤

  1. 获取输入: 数字个数, 各个数字
  2. 计算所有二位数之和 = (所有数字之和) * 11
  3. 输出总和

伪代码描述

  1. get input: number_amount, numbers;
  2. all_numbers_sum = sum(numbers) * 11
  3. print(all_numbers_sum)

完整提交代码

/*
# 问题分析
题设给定N个非零数字, 要求计算可以组成的所有2位数之和。
由于数字非零, 所以每一个数字都可以选在个位或者十位。
如果一个数字选择放在十位, 则总和要加上它的十倍;
如果选择放在个位, 则总和要加上它本身。
所以, 总和等于每一个数字在十位所代表的值+其在个位所代表的值. 即所有数字之和 * 11
 
# 完整描述步骤
1. 获取输入: 数字个数, 各个数字
2. 计算所有二位数之和 = (所有数字之和) * 11
3. 输出总和
 
 
# 伪代码描述
1. get input: number_amount, numbers;
2. all_numbers_sum = sum(numbers) * 11
3. print(all_numbers_sum)
 
*/
int main(){
    int number_amount;
    scanf("%d", &number_amount);
    int number;
    int sum = 0;
    for (int i = 0; i < number_amount; i++){
        scanf("%d", &number);
        sum += number;
    }
    printf("%d", sum * 11 * (number_amount - 1));
    return 0;
}
「PAT乙级真题解析」Basic Level 1056 组合数的和 (问题分析+完整步骤+伪代码描述+提交通过代码) | 生活糖果