Paper folding

来源:互联网 发布:ubuntu 16 输入法 编辑:程序博客网 时间:2024/05/21 22:43

Paper folding

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 416    Accepted Submission(s): 45


Problem Description
Mr.Hu was addicted to games about paper.Now he has a square paper,then he fold the paper along the midline for N times,and the latter fold and the former fold are vertical.Eventually ,the paper will be divided into a certain number of grids by the fold.Now,Give you the minimum length K of the grid.Can you tell me the area of the paper?
(the answer mod 10000007 )
 

Input
There are multiple of cases.Each case in a line.Each line will contain two integers N and K(0=<N<=10^9,0<K<1000).
 

Output
Output the answer in a line.
 

Sample Input
1 22 34 6
 

Sample Output
1636576

#include <stdio.h>

int main()
{
int n,k;
__int64 a,b;
while(scanf("%d %d",&n,&k)!=EOF)
{
a=1,b=2;
if(n%2!=0)
n++;
while(n>0)
{
if(n%2!=0)
a=(a*b)%10000007;
b=(b*b)%10000007;
n=n/2;
}
k=(k*k)%10000007;
printf("%I64d\n",(a*k)%10000007);
}
return 0;
}

题意就是给你折叠的次数和一个边的长度,求原来纸的面积
这道题关键是对偶数次的还原,为什么我对每一步都取余呢,嘿嘿,因为我怕数太大
0 0
原创粉丝点击