QDUOJ595 HWJ学长的心愿 杨辉三角 找规律

题意:找规律,发现每一行奇数的个数其实是该行号二进制表示中1的数量
感谢浩神 感谢hmgg提供的思路 其实貌似找两个规律就能找到了

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
#define inf 0x3f3f3f3f
#define MID (t[k].l+t[k].r)>>1
#define cl(a,b) memset(a,b,sizeof(a))
using namespace std;
int getnum(int n){
	int ans=0;
	while(n){
		if(n&1){
			ans++;
		}
		n>>=1;
	}
	return ans;
}
int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		int num=getnum(n);
		printf("%d\n",(int)pow(2,num));
	}
	return 0;
}

描述
HWJ学长十分热爱数字,尤其是奇数。作为单身狗的HWJ更喜欢奇数,讨厌成双成对的存在。马上2019.10.1就要来了,大家都和自己的女(男)朋友准备好出去逛街…HWJ学长只能自己在宿舍静静的学习。偶然间,他看到一个问题:“
Cn0+Cn1+Cn2+…+Cnn=?C _{n}^{0}+C _{n}^{1}+C _{n}^{2}+…+C _{n}^{n} = ?
C
n
0

+C
n
1

+C
n
2

+…+C
n
n

=?”。HWJ学长当然知道这个问题的答案,但是他想知道这里面有多少个奇数。当
n=1n=1
n=1时,
C10=C11=1C_{1}{0}=C_{1}{1}=1
C
1
0

=C
1
1

=1,一共两个奇数…突然一个女生看到他在数其中奇数的个数,他想借此展示自己过人的数学天赋,于是写下几个大数
nn
n,但是却发现自己根本求不出来。弱小可怜又无助的HWJ学长来想你求助,想你能写一个程序来帮助他求得答案。
输入
每一行包括一个数字
n(1≤n≤1e9)n(1≤n≤1e^{9})
n(1≤n≤1e
9
)。多组样例输入,样例个数不会超过
1e31e^3
1e
3

输出
输出
Cn0,Cn1,Cn2,…,CnnC _{n}^{0},C _{n}^{1},C _{n}^{2},…,C _{n}^{n}
C
n
0

,C
n
1

,C
n
2

,…,C
n
n

中所有奇数的个数。
输入样例 1
1
2
11
输出样例 1
2
2
8

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值