1 条题解

  • 0
    @ 2025-8-24 22:13:44

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar yuxinrui0618
    这个家伙很懒,只留下了一句“加下这个团队https://www.luogu.com.cn/team/84572,另外,关注她,帮助她必关(棕名,封禁除外)”

    搬运于2025-08-24 22:13:44,当前版本为作者最后更新于2025-05-10 12:32:51,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题解:P5719 【深基4.例3】分类平均

    1. 题目大意

    • nn 个数中可以被 kk 整除的数的平均值和其他数的平均值。

    2. 思路

    • 平均值的求法:用数的总和除以数的个数;
    • 用变量 s1s1 表示能被 kk 整除的数的个数,c1c1 表示能被 kk 整除的数的总和;
    • 用变量 s2s2 表示不能被 kk 整除的数的个数,c2c2 表示不能被 kk 整除的数的总和;
    • 对于每个数,判断是否能被 kk 整除;
    • 若可以,就将 s1s1 加一,c1c1 加上这个数;
    • 若不可以,就将 s2s2 加一,c2c2 加上这个数;
    • 注意由于输出要求,需使用 double 类型。

    3. 代码

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int n,x,k,s1=0,s2=0;
    	double c1=0,c2=0;
    	cin>>n>>k;
    	for (int i=1;i<=n;i++)
    	{
    		if (i%k==0) //是否为 k 的倍数
    		{
    			s1++;
    			c1+=i;
    		}
    		else
    		{
    			s2++;
    			c2+=i;
    		}
    	}
    	printf("%.1lf %.1lf",c1/s1,c2/s2); //或 cout<<fixed<< setprecision(1)<<c1/s1<<" "<<c2/s2;
        return 0;
    }
    

    4. 总结

    谢谢观赏!
    若有不完善的地方还请各位大佬指出!

    • 1

    信息

    ID
    4685
    时间
    1000ms
    内存
    125MiB
    难度
    1
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者