L1-080 乘法口诀数列(PTA)

L1-080 乘法口诀数列

题目描述

本题要求你从任意给定的两个 1 位数字 a1和 a2开始,用乘法口诀生成一个数列 {an },规则为从 a1开始顺次进行,每次将当前数字与后面一个数字相乘,将结果贴在数列末尾。如果结果不是 1位数,则其每一位都应成为数列的一项。

输入格式:
输入在一行中给出 3 个整数,依次为 a1、a2和 n,满足 0≤a1,a2=≤9,0<n≤103

输出格式:
在一行中输出数列的前 n 项。数字间以 1 个空格分隔,行首尾不得有多余空格。

输入样例:

2 3 10

输出样例:

2 3 6 1 8 6 8 4 8 4

样例解释:
数列前 2 项为 2 和 3。从 2 开始,因为 2×3=6,所以第 3 项是 6。因为 3×6=18,所以第 4、5 项分别是 1、8。依次类推…… 最后因为第 6 项有 6×8=48,对应第 10、11 项应该是 4、8。而因为只要求输出前 10 项,所以在输出 4 后结束。

模拟

这段代码实现了一个基于乘法口诀生成的数列,并且按照要求输出数列的前n项。代码的逻辑是从任意给定的两个一位数字a1a2开始,通过乘法操作逐步扩展数列,直到达到所需的长度。下面是对代码的详细注释。

#include<bits/stdc++.h> // 引入常用库,包括输入输出流、数据结构等
using namespace std;

const int z=1e3+10; // 定义数组的最大长度,略大于题目要求的n的最大值1000

int num[z]; // 定义一个全局数组num,用来存储生成的数列

int main()
{
	int a1,a2,n; // 定义输入的两个一位数字a1、a2和要输出的数列长度n
	cin>>a1>>a2>>n; // 输入a1、a2和n
	num[0]=a1; // 将a1赋值给数列的第一个元素
	num[1]=a2; // 将a2赋值给数列的第二个元素
	int j=2; // 定义一个指针j,指向数列的下一个填充位置
	for(int i=0;i<n;i++)
	{
		int sum=num[i]*num[i+1]; // 计算当前元素与其后一个元素的乘积
		if(sum>=10) // 如果乘积是两位数
		{
			num[j++]=sum/10; // 将十位数作为数列的下一个元素
			num[j++]=sum%10; // 将个位数作为数列的下一个元素
		}
		else num[j++]=sum; // 如果乘积是一位数,直接将其作为数列的下一个元素
	}
	for(int i=0;i<n;i++) // 遍历数列的前n项进行输出
	{
		if(i!=n-1)
			cout<<num[i]<<" "; // 如果不是最后一个元素,输出后加空格
		else 
			cout<<num[i]; // 如果是最后一个元素,直接输出,不加空格
	}
	return 0; // 程序结束
}

这段代码巧妙地利用数组num来逐个生成数列的元素。通过不断地计算当前元素和其后一个元素的乘积,并根据乘积的位数决定如何扩展数列,以此实现数列的生成。注意,虽然for循环的条件是i<n,但实际上,当j(即数列的实际长度)达到或超过n时,后续的元素将不会再被加入数列中,因此生成的数列正好满足输出前n项的要求。最后的输出逻辑确保了输出格式的正确性,即数列元素之间以单个空格分隔,行首尾没有多余的空格。

相关推荐

  1. L1-080 乘法口诀数列PTA

    2024-03-17 14:04:02       20 阅读
  2. 题记(57)--L1-080 乘法口诀数列

    2024-03-17 14:04:02       19 阅读
  3. pta L1-008 求整数段和

    2024-03-17 14:04:02       19 阅读
  4. L1-095 分寝室(PTA

    2024-03-17 14:04:02       17 阅读
  5. pta L1-076 降价提醒机器人

    2024-03-17 14:04:02       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 14:04:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 14:04:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 14:04:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 14:04:02       18 阅读

热门阅读

  1. 备战蓝桥杯Day28 - 拼接最大数字问题

    2024-03-17 14:04:02       21 阅读
  2. 大数据开发(Hive面试真题-卷三)

    2024-03-17 14:04:02       23 阅读
  3. redis的安装,启动和关闭

    2024-03-17 14:04:02       19 阅读
  4. 最新2024年项目基金撰写与技巧及GPT融合应用

    2024-03-17 14:04:02       19 阅读
  5. Android中使用intent可以传递哪些类型的数据?

    2024-03-17 14:04:02       16 阅读
  6. Docker安装kafka

    2024-03-17 14:04:02       21 阅读
  7. Vue生命周期

    2024-03-17 14:04:02       18 阅读
  8. 22.4 docker

    2024-03-17 14:04:02       20 阅读
  9. 设计模式之工厂模式

    2024-03-17 14:04:02       17 阅读
  10. mysql读写分离及高可用集群常见问题

    2024-03-17 14:04:02       18 阅读