| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 751 人关注过本帖
标题:c++题一道,谢谢大神们
只看楼主 加入收藏
SRXabc
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-6-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
c++题一道,谢谢大神们
取模运算是计算机里最常见的运算符之一。现在给你一个非负整数n,需要你计算n的阶乘对2018取模的结果。


任何大于等于1 的自然数n 阶乘(n!)表示方法:。

其中:0!=1。

 注:(a * b) % p = ((a % p) * (b % p)) % p  

输入

输入一个非负整数n(0 <= n <= 1000)。

输出

计算出n!%2018的结果。

样例输入

3

样例输出

6
搜索更多相关主题的帖子: c++ 整数 结果 输入 输出 
2018-06-21 18:13
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:10 
程序代码:
#include<stdio.h>
long fac(unsigned n)
{
  if (n == 0 || n == 1)
   return 1;
  else
     return (n * fac(n - 1));

 }
int main()
{
   unsigned ui, a;
   printf("输入计算的阶乘:");
   scanf("%u", &ui);
   printf("%u 的阶乘对2018取模的结果:%u\n",ui, fac(ui)%2018);
   return 0;
}
2018-06-21 19:45
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:10 
以下是引用自学的数学在2018-6-21 19:45:04的发言:

#include<stdio.h>
long fac(unsigned n)
{
  if (n == 0 || n == 1)
   return 1;
  else
     return (n * fac(n - 1));
 }
int main()
{
   unsigned ui, a;
   printf("输入计算的阶乘:");
   scanf("%u", &ui);
   printf("%u 的阶乘对2018取模的结果:%u\n",ui, fac(ui)%2018);
   return 0;
}

错的 就算你用 无符号int也是不对的
这里需要用到同余定理
而且题目提示也有说明了
顺便求阶层用递归 没什么意义

https://zh.
2018-06-22 01:07
快速回复:c++题一道,谢谢大神们
数据加载中...
 
   



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

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