奇偶数的蛋糕
2015-12-05 17:45
211 查看
C - C
Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu
Submit Status
Description
Ekka and his friend Dokka decided to buy a cake. They both love cakes and that's why they want to share the cake after buying it. As the name suggested that Ekka is very fond of odd numbers and Dokka is very fond of even numbers, they want to divide the
cake such that Ekka gets a share ofN square centimeters and Dokka gets a share of M square centimeters where N is odd and M is even. Both N and M are positive
integers.
They want to divide the cake such that N * M = W, where W is the dashing factor set by them. Now you know their dashing factor, you have to find whether they can buy the desired cake or not.
Input
Input starts with an integer T (≤ 10000), denoting the number of test cases.
Each case contains an integer W (2 ≤ W < 263). And W will not be a power of 2.
Output
For each case, print the case number first. After that print "Impossible" if they can't buy their desired cake. If they can buy such a cake, you have to print N and M. If there are multiple solutions, then
print the result where M is as small as possible.
Sample Input
3
10
5
12
Sample Output
Case 1: 5 2
Case 2: Impossible
Case 3: 3 4
#include<stdio.h>
#include<math.h>
int main()
{
long long a,x,n,t,k;
scanf("%d",&n);
for (t=1;t<=n;t++)
{
scanf("%lld",&x);
k=0;
for (a=1;x/2*2==x;a=a*2)
{
x=x/2;
k=1;
}
if (k==1)
printf("Case %d: %lld %lld\n",t,x,a);
else
printf("Case %d: Impossible\n",t);
}
return 0;
}
此题注意:要求一个奇数,一个偶数,偶数还要是最小偶数,所以可以一直用2除x;最后得到a,x;
Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu
Submit Status
Description
Ekka and his friend Dokka decided to buy a cake. They both love cakes and that's why they want to share the cake after buying it. As the name suggested that Ekka is very fond of odd numbers and Dokka is very fond of even numbers, they want to divide the
cake such that Ekka gets a share ofN square centimeters and Dokka gets a share of M square centimeters where N is odd and M is even. Both N and M are positive
integers.
They want to divide the cake such that N * M = W, where W is the dashing factor set by them. Now you know their dashing factor, you have to find whether they can buy the desired cake or not.
Input
Input starts with an integer T (≤ 10000), denoting the number of test cases.
Each case contains an integer W (2 ≤ W < 263). And W will not be a power of 2.
Output
For each case, print the case number first. After that print "Impossible" if they can't buy their desired cake. If they can buy such a cake, you have to print N and M. If there are multiple solutions, then
print the result where M is as small as possible.
Sample Input
3
10
5
12
Sample Output
Case 1: 5 2
Case 2: Impossible
Case 3: 3 4
#include<stdio.h>
#include<math.h>
int main()
{
long long a,x,n,t,k;
scanf("%d",&n);
for (t=1;t<=n;t++)
{
scanf("%lld",&x);
k=0;
for (a=1;x/2*2==x;a=a*2)
{
x=x/2;
k=1;
}
if (k==1)
printf("Case %d: %lld %lld\n",t,x,a);
else
printf("Case %d: Impossible\n",t);
}
return 0;
}
此题注意:要求一个奇数,一个偶数,偶数还要是最小偶数,所以可以一直用2除x;最后得到a,x;
相关文章推荐
- 【Unity】改变向量的方向而不改变其大小
- [zz]澄清P问题、NP问题、NPC问题的概念
- Android自定义属性的使用步骤
- Nginx rewrite配置规则
- minigui安装及问题总结
- OC方法和继承
- Xcode 中添加 .pch文件
- SpringMVC知识二
- 蓝桥杯 Fibonacci数列(数列+取模)
- Android之listview实现加载数据的动画
- 深入解析AsyncTas
- thinkphp实现多个子查询语句
- Go语言和ASP.NET的一般处理程序在处理WEB请求时的速度比较
- 士兵杀敌(二)(线段树)
- HDU 1016 Prime Ring Problem(DFS入门)
- s5p4418-sdio接口的wifi模块驱动及往android层的延伸
- OC04_NSString,NSUnmberm,NSValue
- Linux下配置Tomcat6和PHP
- POX控制器下Dijkstra算法的实现
- PL/SQL编程简介