| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 600 人关注过本帖
标题:请教【CPP1-6.考6】奇偶阶乘
只看楼主 加入收藏
yiyanxiyin
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:215
专家分:1590
注 册:2023-6-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
请教【CPP1-6.考6】奇偶阶乘
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

测试数据都过了, 但递交评测不过
程序代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    int cnt = 0;
    cin>> n;
    //阶乘
    for(int i = 1;i <= n;i++){
        if(i % 5 == 0){
            cnt++;
        }
    }
    cout<< cnt <<" ";
    cnt=0;
    //奇偶阶乘
    if(n % 2 == 0){//偶数
        for(int i=2 ;i<=n;i+=2){
            if(i % 5 == 0){
                cnt++; 
            }
        }
    } else {//奇数
        cnt=0;
    }


    cout<< cnt;
}


不知道哪里有问题
搜索更多相关主题的帖子: cout std 阶乘 int for 
2023-08-11 10:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:20 
第一个
        if(i % 5 == 0){
            cnt++;
        }

就不对,比如 25,它是 5*5,那么它能提供两个0。
25! 的尾部有6个0,你看看你的代码输出多少?
2023-08-11 11:36
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
我随手写一个,没条件测试,仅供参考

程序代码:
#include <iostream>
using namespace std;

int main( void )
{
    unsigned n;
    cin>> n;

    // n!
    {
        unsigned cnt = 0;
        for( unsigned t=n; t!=0; t/=5 )
            cnt += t/5;
        cout << cnt << ' ';
    }

    // n!!
    {
        unsigned cnt = 0;
        if( n%2 == 0 ) // 偶数
        {
            for( unsigned t=n; t!=0; t/=10 )
                cnt += t/10;
        }
        cout << cnt << '\n';
    }
}
2023-08-11 11:44
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:633
专家分:3045
注 册:2011-4-22
收藏
得分:0 
楼主把算法改一下:
统计n中含因子2和5的个数,累计一下,最后按2或者5个数中少的一个输出。
2023-08-11 17:08
快速回复:请教【CPP1-6.考6】奇偶阶乘
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.072937 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved