[入门]N!中1的位置
来源:互联网 发布:java干货知识点分享 编辑:程序博客网 时间:2024/06/18 12:30
c语言入门一道比较有意思的题目
题目描述
求N!的二进制表示中最低位1的位置。
输入
一个正整数N(0 <N <= 3000 )
输出
一个整数。
样例输入
4
样例输出
4
提示
4!=(24)10=(11000)2
数据范围是0-3000,所以先求出阶乘在转换为二进制求后面几个零是不现实的,我在列举数据1-5之后摸索出了规律数据如下
测试数据 1 2 3 4 5
测试数据的二进制 1 10 11 100 101
测试数据的阶乘 1 2 6 24 120
测试数据的二进制数 1 10 110 11000 1111000
总结规律为N!的二进制数后零的个数为1-N的二进制数后零的个数之和。
AC代码
#include <stdio.h>int main (void){ int n,i,sum=0,a,yushu,digit; scanf("%d",&n); for(i=1;i<=n;i++) { digit=0; a=i; do{ yushu=a%2; if(yushu!=0) break; a=a/2; digit++; }while(yushu==0); sum=sum+digit; } printf("%d\n",sum+1);}
阅读全文
0 0
- [入门]N!中1的位置
- 判断N!中二进制中最低位1的位置
- N!二进制中1首次出现的位置
- 给定一个整数N,求N!末尾有多少个0?N!的二进制表示中最低1的位置?
- java 返回字符串中位置n的代码单元和位置n的代码点
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?求N!的二进制表示中最低位1的位置。
- 求N!的二进制表示中最低位1的位置 ->求 N!的质因子2的个数
- n! 最低位1的位置
- N!最低位1的位置
- C程序:n!的二进制表示中最低位1的位置
- 求N!的二进制表示中最低位1的位置
- 求N!的二进制表示中最低位1的位置
- 编程之美-2.2、n阶乘的二进制表示中最低位1的位置
- 阶乘N!的二进制表示中最低位1的位置
- 求N!的二进制表示中最低位1的位置
- 编程之美---求N!的二进制表示中最低位1的位置
- 编程之美2——N!的二进制表示中最低位1的位置
- 编程之美2.2 求N!中最低位1 的位置
- 《笨办法学python》加分习题10——我的答案
- 数组选择排序代码
- js 中的this
- MYSQL中的主健、普通索引、唯一索引和全文索引
- Uva 10110
- [入门]N!中1的位置
- CListCtrl控件使用
- Maven项目开发____Java工程项目Pom的依赖
- Phonenix4.9 (添加二级索引,新版本本地索引表变更) hbase1.25的集成测试
- 指针函数与函数指针
- 嘿,要毕业的大学生该怎么办!
- SecureCRT部署java项目
- RecyclerView和ListView的异同
- Spring MVC+Maven 轻松实现上传文件功能