编程英雄会之 报数游戏(2)
题目地址:http://hero.csdn.net/Question/Details?ID=230&ExamID=225
题目:
N个人(编号1-N),站成一排,进行报数游戏。报数过程可能进行很多轮,有如下规则:
(1) 如果剩余人数不超过3个人,则游戏结束。
(2) 大家报数,然后留下报奇数的人从第一个人继续游戏,或者留下报偶数的人继续游戏。
重复如此(1)(2)两步骤,到游戏结束。
问:最终剩下的三人组有多少种情况?(注意是三人组,例如如果最后剩下2个或者1个人,不计入结果中)。
输入n, (0<n<=10000000)
输出最终结果。
我的代码:
提交后仍然一如以往的失败,大家帮忙看看哪里有问题吧。
下面是用一般思路写的
参考,
题目:
N个人(编号1-N),站成一排,进行报数游戏。报数过程可能进行很多轮,有如下规则:
(1) 如果剩余人数不超过3个人,则游戏结束。
(2) 大家报数,然后留下报奇数的人从第一个人继续游戏,或者留下报偶数的人继续游戏。
重复如此(1)(2)两步骤,到游戏结束。
问:最终剩下的三人组有多少种情况?(注意是三人组,例如如果最后剩下2个或者1个人,不计入结果中)。
输入n, (0<n<=10000000)
输出最终结果。
我的代码:
public class Test3 {
public static void main(String[] args) {
System.out.println(howmany(306));
}
public static int howmany(int n) {
int time=1;
int s=n;
while((s=s>>1)>1){
time=time<<1;
}
return n%time;
}
}提交后仍然一如以往的失败,大家帮忙看看哪里有问题吧。
下面是用一般思路写的
参考,
public class Test {
static int num=0;
static Set<String> all=new HashSet<String>();
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
int n=306;
for(int i=0;i<n;i++){
list.add(Integer.toString(i+1));
}
baoshu(list);
System.out.println(all.size());
}
public static void baoshu(List<String> list){
if(list.size()==3){
num++;
StringBuilder builder=new StringBuilder();
for(int i=0;i<3;i++){
builder.append(list.get(i)+"_");
}
all.add(builder.toString());
return;
}
if(list.size()<3){
num++;
return;
}
List<String> ji_list=new ArrayList<>();
List<String> ou_list=new ArrayList<>();
for(int i=0;i<list.size();i++){
if(i%2==0){
ou_list.add(list.get(i));
}else{
ji_list.add(list.get(i));
}
}
baoshu(ji_list);
baoshu(ou_list);
}
}
...全文
相关推荐
rpg游戏代码(圣剑英雄传)
一款rpg游戏的源代码,程序已经被我调通。。程序代码规范,各类功能模块划分很清晰,对想学习游戏编程的程序员有极大的帮助
wap游戏英雄
一个WAP游戏源码,学习交流用,功能简单实用,养成类的。
VC++游戏圣剑英雄传2双刃剑源程序+开发文档
内容索引:VC/C++源码,游戏编程,圣剑英雄传 调试时候需要先安装Direct 8.0以上的SDK,否则在编译时会提示找不到DDRAW.h文件。并在开发环境下设置好路径。
HeroM2英雄版引擎1108源码.zip
HeroM2英雄版引擎1108源码.zip
游戏英雄的代码
这个是android的可以控制的英雄的舞剑的代码,希望能帮到你们


