社区
数据结构与算法
帖子详情
求n!的左边第二位数字?
donald_xmli
2005-10-12 10:29:00
问题如标题。
输入:n(n >= 4)
输出:n!的左边第二位数字。
例:
(1)
4!= 24,
输入:4
输出:4。
(2)
5! = 120
输入:5
输出:2。
求算法。
...全文
228
7
打赏
收藏
求n!的左边第二位数字?
问题如标题。 输入:n(n >= 4) 输出:n!的左边第二位数字。 例: (1) 4!= 24, 输入:4 输出:4。 (2) 5! = 120 输入:5 输出:2。 求算法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cosio
2005-10-13
打赏
举报
回复
我没有判断N>=4的情况
Private Sub Command1_Click()
if val(text1.text)<4 then exit sub
Call Multi(Val(Text1.Text))
Text2.Text = Mid(Sum, 2, 1)
End Sub
cosio
2005-10-13
打赏
举报
回复
Dim Sum As Long
Private Sub Command1_Click()
Call Multi(Val(Text1.Text))
Text2.Text = Mid(Sum, 2, 1)
End Sub
Private Function Multi(ByVal n As Long)
Sum = 1
Do While (n > 0)
Sum = n * Sum
n = n - 1
Loop
End Function
VB算法!
yj9853051
2005-10-13
打赏
举报
回复
cosio程序(不是算法)对n 比较小是可以的 n>50基本上不行的
mmmcd
2005-10-12
打赏
举报
回复
A = S的取整 mod 10
mmmcd
2005-10-12
打赏
举报
回复
假设n!有k位数(k>2 k=[lg(n!)]+1 )
左边二位数 S = n!/10^(k-2)
lg S = lg(n!)-(k-2) = lg(n!)-[lg(n!)]+1
S = 10^(lg(n!)-[lg(n!)]+1)
左边第二位数 A = S mod 10
#include <stdio.h>
#include <math.h>
double lf(int n){
int i;
double r=0;
for(i=2;i<=n;i++)
r+=log(i)/log(10);
return r;
}
int main()
{
int n,a;
double k;
while(scanf("%d",&n)){
k=lf(n);
if(k>2){
a=(int)(pow(10,k-(int)k+1)+1e-10);
printf("%d\n",a % 10);
}
else{
a=(int)(pow(10,k)+1e-10);
printf("%d\n",a %10);
}
}
return 0;
}
gxqcn
2005-10-12
打赏
举报
回复
这比求最后一位非零数简单多了!
只需计算出 n! 足够的有效位即可,有著名的 Stirling's series :
n! = sqrt(2*pi) * n^(n+1/2) * e^(-n) * ( 1 + 1/12*n^-1 + 1/288*n^-2 - 139/51840*n^-3 + ... )
yelling
2005-10-12
打赏
举报
回复
计算中丢弃位数,保留一定的精度,最后取第二位。
fjnu 1232 请
求
N!
左边
第二位
的
数字
左边
第二位
的
数字
Input第一行为一整数M.表示M组测试数据,每组测试数据仅一个整数N.4Output输出N!
左边
第二个
数字
Sample Input245Sample Output42 KEY:这题看似没什么思路,好好想想,推出公示S=10^lg(n!/k-2)...
【LeetCode】﹝数学规律ி﹞第N位
数字
、可怜的小猪
文章目录【LeetCode】﹝数学规律ி﹞第N位
数字
、可怜的小猪乐团站位★罗马
数字
转整数★整数转罗马
数字
★★第 N 位
数字
★★
数字
1 的个数★★★森林中的兔子★★直线上最多的点数★★★可怜的小猪★★★ 乐团站位★ ...
特殊回文数: 输入一个正整数n, 编程
求
所有这样的五位和六位十进制数,满足各位
数字
之和等于n 。
输入一个正整数n, 编程
求
所有这样的五位和六位十进制数,满足各位
数字
之和等于n 。 输入格式 输入一行,包含一个正整数n。 输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。 样例输入 52 样例输出 ...
在N个乱序
数字
中查找第k大的
数字
在N个乱序
数字
中查找第k大的
数字
在N个乱序
数字
中查找第k大的
数字
,时间复杂度可以减小至 O(N*logN) O(N) O(1) O(2) 答案:B 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的...
2022-02-05:字典序的第K小
数字
。 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的
数字
。 注意:1 ≤ k ≤ n ≤ 10**9。 示例 : 输入: n: 13 k: 2
字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的
数字
是 10。 力扣440。 答案2022-02-05: 这道题很难想到。具体见代码。 划分成左,中,右三部分。 时间复杂度:O(logN)。这道题在...
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章