文章目录:
故事的开头总是极尽温柔,故事会一直温柔……💜
✨你好啊,我是“ 怪& ”,是一名在校大学生哦。
🌍主页链接:怪&的个人博客主页
☀️博文主更方向为:课程学习知识、作业题解、期末备考。随着专业的深入会越来越广哦…一起期待。
❤️一个“不想让我曾没有做好的也成为你的遗憾”的博主。
💪很高兴与你相遇,一起加油!
一、🌳代码如下:
#include <iostream>
#include <iostream>
using namespace std;
long long n,m;
const int N =30;
long long a[N];
long long b[N];
long long c[N];
int main(){
cin>>n>>m; //输入个数、数字
for(int i=1;i<=n;i++){
cin>>a[i];
}
c[0]=1;
long long flag=1;
for(int i=1;i<=n;i++){//计算c[i]
c[i]=flag*a[i];
flag=c[i];
}
for(int i=n;i>=1;i--){//计算b[i]
long long x=m/c[i-1];
b[i]=x;
m=m%c[i-1];
}
for(int i=1;i<=n;i++){//输出
cout<<b[i]<<" ";
}
return 0;
}
二、🌵解题思路
1、性质归纳🍠
(1)、题目提示
(2)、已知信息
- Ci表示数组ai的前缀乘积:Ci= a1 * a2 *……ai
2、输入输出🍅
(1)、输入:
- 题目数量:n
- 神秘数字:m
- a1 、 a2、 a3 …… an
(2)、求解
- b1、 b2、 b3 …… bn
3、求解步骤✌
- (1)、输入
- (2)、计算C[i](数组ai的前缀乘积)
- (3)、计算b[i](结合题目提示)
由此式子得到应从b[n](Cn最大)开始求
且b[i]=m/c[i-1]
求b[i]后,将m=m%c[i-1]
转化为代码如下:for(int i=n;i>=1;i--){//计算b[i] long long x=m/c[i-1]; b[i]=x; m=m%c[i-1];