全部评论 6

  • 声明,所有人在本贴下回复的入均为贴主干儿子!

    2025-08-06 来自 浙江

    1
  • 先看题目 求序列p的最小序列和(可以用p[i]-p[j])
    那就使用选择法来做减法。
    废话不多说,直接上代码。
    先初始化 用全局变量

    #include<bits/stdc++.h>
    using namespace std;
    int n,p[101],sum=0;
    本题只需要主函数
    先输入n
    再用for循环输入数组p

    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>p[i];
    

    接着使用 循环嵌套搭配选择排序 减小数组

    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++){ //选择p[i]和p[j]
            if(i!=j){ //判断i和j不相等 节省运行时间
                if(p[i]>p[j])
                    p[i]-=p[j];
                else
                    if(p[j]>p[i])  //避免两数相等出现0
                       p[j]-=p[i];  //使用条件分支进行“大减小”
            }
        }
    

    最后再用for循环找出p数组中的各数 用sum求和

    for(int i=1;i<=n;i++)
        sum+=p[i];
    cout<<sum;
    

    总代码为

    #include<bits/stdc++.h>
    using namespace std;
    int n,p[101],sum=0; //变量初始化
    int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>p[i]; //读入p数组和n
    for(int i=1;i<=n;i++)
    for(int j=1;j<=n;j++){ //选择p[i]和p[j]
    if(i!=j){ //判断i和j不相等 节省运行时间
    if(p[i]>p[j])
    p[i]-=p[j];
    else
    if(p[j]>p[i]) //避免两数相等出现0
    p[j]-=p[i]; //使用条件分支进行“大减小”
    }
    }
    for(int i=1;i<=n;i++)
    sum+=p[i];
    cout<<sum; //用sum求和并输出
    return 0;
    }
    敲字不易,点个赞吧!
    非常感谢!

    2025-08-06 来自 浙江

    0
  • %%%

    2025-08-06 来自 浙江

    0
  • %%%

    2025-08-06 来自 浙江

    0
  • %¥%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    2025-08-06 来自 北京

    0
  • 先看题目 求序列p的最小序列和(可以用p[i]-p[j])
    那就使用选择法来做减法。
    废话不多说,直接上代码。
    先初始化 用全局变量

    #include<bits/stdc++.h>
    using namespace std;
    int n,p[101],sum=0;
    本题只需要主函数
    先输入n
    再用for循环输入数组p

    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>p[i];
    

    接着使用 循环嵌套搭配选择排序 减小数组

    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++){ //选择p[i]和p[j]
            if(i!=j){ //判断i和j不相等 节省运行时间
                if(p[i]>p[j])
                    p[i]-=p[j];
                else
                    if(p[j]>p[i])  //避免两数相等出现0
                       p[j]-=p[i];  //使用条件分支进行“大减小”
            }
        }
    

    最后再用for循环找出p数组中的各数 用sum求和

    for(int i=1;i<=n;i++)
        sum+=p[i];
    cout<<sum;
    

    总代码为

    #include<bits/stdc++.h>
    using namespace std;
    int n,p[101],sum=0; //变量初始化
    int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>p[i]; //读入p数组和n
    for(int i=1;i<=n;i++)
    for(int j=1;j<=n;j++){ //选择p[i]和p[j]
    if(i!=j){ //判断i和j不相等 节省运行时间
    if(p[i]>p[j])
    p[i]-=p[j];
    else
    if(p[j]>p[i]) //避免两数相等出现0
    p[j]-=p[i]; //使用条件分支进行“大减小”
    }
    }
    for(int i=1;i<=n;i++)
    sum+=p[i];
    cout<<sum; //用sum求和并输出
    return 0;
    }
    敲字不易,点个赞吧!
    非常感谢!

    2025-08-06 来自 浙江

    0

热门讨论