题解 | 小红的数字分裂

小红的数字分裂

https://www.nowcoder.com/practice/277ff300713a4e119d11f3d384c48355

#include <bits/stdc++.h>
using namespace std;
using ll= long long;
int main() {
    ll n;
    cin>>n;
    vector<int>v(n,0);
    for(int i=0;i<n;i++){
        cin>>v[i];
    }
    ll a=0;
    for(int i=0;i<n;i++){
        a=gcd(a,v[i]);
    }
    ll cnt=0;
    for(int i=0;i<n;i++){
        int temp=v[i];
        if(temp!=a){
            cnt+=temp/a-1;
        }
    }
    cout<<cnt;
}
// 64 位输出请用 printf("%lld")

数字分裂,观察得知,最小步骤得到的最后相同数字也就是整个数组的最大公因数,所以遍历每个数字判断拆解成最大公因数的步骤即可

全部评论

相关推荐

01-02 20:08
马鞍山学院 Java
27届学院本誓死冲击...:实习经历最好写上做了什么项目,负责什么业务,否则有点假
点赞 评论 收藏
分享
01-30 16:13
浙江大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务