Codeforces Round #636 (Div. 3) 比赛人数12253
[codeforces 1343A] Candies 等比数列求和公式
总目录详见https://blog.csdn.net/mrcrack/article/details/103564004
在线测评地址http://codeforces.com/contest/1343/problem/A
Problem | Lang | Verdict | Time | Memory |
---|---|---|---|---|
A - Candies | GNU C++17 | Accepted | 15 ms | 0 KB |
根据等比数列求和公式S=(a1-an*q)/(1-q)
上式变为x*(2^k-1)=n
2^10=1024,2^30=10^9
枚举2^2-1,2^3-1,2^4-1,......,2^29-1,2^30-1
找到符合题意的x
感觉,第一题不菜嘛。
AC代码如下
#include <stdio.h>
int k[31];
int main(){
int t,n,i;
k[0]=1;
for(i=1;i<=30;i++)k[i]=k[i-1]*2;
for(i=2;i<=30;i++)k[i]-=1;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(i=2;i<=30;i++)
if(n%k[i]==0){
printf("%d\n",n/k[i]);
break;
}
}
}