我们学校的程序设计选拔赛
1.规则是3个空瓶子可以换一瓶酒。假如有10个瓶子,先换3瓶啤酒,这时有4个空瓶子,再换一瓶啤酒,这时有2个空瓶子,这时候再借1瓶,喝完再换1瓶还给老板。现在求n个瓶子最多能换多少瓶酒?
2.求回文数,输入一个数P,求离P最近的N(N>P),N要是回文数。
类似5,11,131,1221 都是回文数。
3.输入两个二进制数(长度要一样,不能超过100位),判断对应位置上有几位不相同。例如000和111有3位不同,11100,00011有5位不同。。。
小弟大一菜鸟一个,求各位大神指教。
[解决办法]
第一题 另类思路
既然允许借酒
如果你有两瓶酒,你先借一瓶,这是你就有3瓶酒了,然后 用三个空瓶子换取一瓶酒还掉刚才借的酒,
这时候 你手里就没有 东西了,总而言之就是说 只要你有2瓶酒 就能够换取一瓶;
//
#include<iostream>
int main()
{
int num=0;
std::cin>>num;//你有 num瓶酒
num = num/2;//num 是int型
std::cout<<"你可以换取的瓶数"<<num<<std::endl;
return 0;
}