南阳oj 求N!的二进制表示最低位的1的位置(从右向左数)。
N!
- 描述
-
阶乘(Factorial)是一个很有意思的函数,但是不少人都比较怕它。现在这里有一个问题,给定一个N(0<0<1000000000),求N!的二进制表示最低位的1的位置(从右向左数)。
- 输入
- 本题有多组测试数据,每组数据一个正整数N(0<0<1000000000),以EOF结束
- 输出
- 求N!的二进制表示最低位的1的位置(从右向左数)。一组数据占一行。
- 样例输入
-
1
2
3
4 - 样例输出
-
1
2
2
4 - 提示
- 2! = (2)10 = (10)2,则第一个1是第二位
3! = (6)10 = (110)2,则第一个1是第二位
4! = (24)10 = (11000)2,则第一个1是第四位 - 来源
- NOJ
- 怎么证明???
-
#include<stdio.h> int main()
{
int n,s;
while(scanf("%d",&n)>)
{
s=;
while(n)
{
s=s+(n>>=);
}
printf("%d\n",s);
}
return ;
}PID274 / 最末非0位☆
题目描述小笨是个贪玩的小孩,一天到晚都要玩游戏。(这样可不行哦>_<)。有一天晚上,他在电脑上找到了一个游戏,很简单。就是电脑显示一个数n,要你数出n!的最末非0位是什么数。如n=5,n!=120。最末非0位上的数即为2;小笨跟他名字一样有一点笨,总是算不出正确答案,只好找到了你。请你帮帮忙哦^()^.
输入格式仅一行,n.(n<=2000000)
输出格式n的最末非0位
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<cstdlib>
using namespace std;
typedef long long LL;
const LL INF = ; int main()
{
LL n,i,sum;
while(scanf("%lld",&n)>)
{
sum=;
for(i=;i<=n;i++)
{
sum=sum*i;
sum=sum%INF;
while(sum%==)
{
sum=sum/;
}
}
printf("%lld\n",sum%);
}
return ;
}
南阳oj 求N!的二进制表示最低位的1的位置(从右向左数)。的更多相关文章
- 【南阳OJ分类之语言入门】80题题目+AC代码汇总
小技巧:本文之前由csdn自动生成了一个目录,不必下拉一个一个去找,可通过目录标题直接定位. 本文转载自本人的csdn博客,复制过来的,排版就不弄了,欢迎转载. 声明: 题目部分皆为南阳OJ题目. 代 ...
- [质疑]编程之美求N!的二进制最低位1的位置的问题
引子:编程之美给出了求N!的二进制最低位1的位置的二种思路,但是呢?但是呢?不信你仔细听我道来. 1.编程之美一书给出的解决思路 问题的目标是N!的二进制表示中最低位1的位置.给定一个整数N,求N!二 ...
- C语言十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方
#include <stdio.h> /* 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方: 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)= ...
- 错误 C2679二进制“没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换
错误 C2679二进制“没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换 严重性 代码 说明 项目 文件 行 禁止显示状态错误 C2679 二进制“<<”: ...
- 南阳 oj 表达式求值 题目35 数据结构 NYO题目链接
建议不会的看别人的代码自己在之上模拟一遍,仅仅要耐心模拟就会做出来 题目链接:http://acm.nyist.net/JudgeOnline/problem.php? pid=35 #incl ...
- power oj 2480 放积木[二进制状压DP]
题目链接[https://www.oj.swust.edu.cn/problem/show/2480] 题意:中文题目. 题解:二进制状态转移+坏点判断. #include<cstdio> ...
- 南阳oj水题集合,语言的灵活运用
a+b 输入 输入两个数,a,b 输出 输出a+b的值 样例输入 2 3 样例输出 5 c/c++ #include<iostream> using namespace std; int ...
- 异 形 卵 709 南阳oj
http://acm.nyist.net/JudgeOnline/problem.php? pid=709 异 形 卵 时间限制:1000 ms | 内存限制:65535 KB 难度: 描写叙述 ...
- python:求整数的二进制表示
求解方法: 1.整数求余 2.重复进行,整数除2再求余,直到除数为0 3.拼接余数 4.反转字符串 def int2two(intNo): twoStr='' if intNo == 0: twoSt ...
随机推荐
- CCF真题之门禁系统
201412-1 问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况.每位读者有一个编号,每条记录用读者的编号来表示.给出读者的来访记录,请问每一条记录中的读者是第几次出现. 输入 ...
- Android使用ZXing生成带图片的二维码
效果图如下: 制作过程很简单的就是在原始的二维码图片上添加一个logn图标,代码的注释写得很详细,也就不给大家啰嗦了 package com.example.day44_02_qrcodewithlo ...
- js 获取选中的多选框
前台html <span class="spbox"> <input type="checkbox" name="category& ...
- mtool安装
先安装python pip.一种python包管理工具. 下面这篇文章讲的很详细.亲测可行. https://ruter.github.io/2015/12/03/Update-python/ git ...
- 解析xml文件
package com.ss1.xml; import java.io.File; import java.io.FileOutputStream; import java.io.IOExceptio ...
- 夺命雷公狗—angularjs—25—angular内置的方法(高级)
查看版本信息 angular.version console.log(angular.version); 判断是否相等 angular.equals() var str1 = ''; var str2 ...
- 鸟哥的linux私房菜之档案与文件系统的压缩与打包
00000001 节约空间 其实简单的说压缩就是把没有用到的0给去掉,解压的时候在加上 在linux中,压缩文件档案的扩展名大多是.tar,.tar.gz,tgz,gz,.Z,.bz2 compres ...
- 编写更少bug的程序的六条准则
如何编写更少bug的程序? 尽可能避免常见的程序错误. 沟通设计先行 + 编写可复用代码 + 做得更多 + 做的更少 + 创造“编程心流”+ 严格的程序测试 ...
- docker-gerrit
Docker Hub https://yeasy.gitbooks.io/docker_practice/content/repository/dockerhub.html 但如何直接下载成压缩文件呢 ...
- linux设备驱动归纳总结(十):1.udev&misc【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-111839.html linux设备驱动归纳总结(十):1.udev&misc xxxxxxx ...