报数游戏
原创
©著作权归作者所有:来自51CTO博客作者笨蛋星儿的原创作品,请联系作者获取转载授权,否则将追究法律责任
private int a = 0;//符合条件的个数
private int i = 1;
private int b = 0;//中间变量,方便进行int类型和String类型的变换
private String str = "";
private boolean next = true;//判断是否符合条件
/**
* 连续输出符合7的倍数或包含7的数
* @param m 要求需要满足的次数
* @return 返回0时表示不存在这样的数据
*/
public int number (int m)
{
while(a != m){
b = 0;
str = i + "";
if(i % 7 == 0){//7的倍数
a = a + 1;
b = i + 1;//当前数的下一个数
str = b + "";
way(0, m);
}else if(str.contains("7")){//含7的数
a = a + 1;
b = i + 1;
str = b + "";
way(1, m);
}else{
a = 0;
}
// System.out.println("得到的a的值:" + a);
i++;
}
if(m == 0){
return 0;
}else{
return i - m;
}
}
/**
* 判断下一个数是否符合条件
* @param choice 前一个是7的倍数还是含有7的数,0:前一个是7的倍数;1:前一个是含有7的数
* @param m
*/
public void way(int choice, int m)
{
if(choice == 0){//前一个是7的倍数
//System.out.println("7的倍数:" + i);
while(next){
if(str.contains("7")){//含7的数
a = a + 1;
b = b + 1;
str = b + "";
// System.out.println("含7的数:" + b);
way(1, m);
}else{
next = false;
}
if(a == m){
next = false;
}
}
}else{//前一个是含7的数
//System.out.println("含7的数:" + i);
while(next){
if(b % 7 == 0){//7的倍数
a = a + 1;
b = b + 1;
str = b + "";
// System.out.println("7的倍数:" + b);
way(0, m);
}else if(str.contains("7")){//含7的数
a = a + 1;
b = b + 1;
str = b + "";
// System.out.println("含7的数:" + b);
way(1, m);
}else{
next = false;
}
if(a == m){
next = false;
}
}
}
}
下一篇:需要学校机器远程登录家里的机器
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
报数游戏湖南2011年省赛【思维】【规律】
题目链接:哈理工oj上的链接1435:
数据 #include -
猴子报数
传送门题目描述n个猴子围坐一圈并按照顺时针方向从1到n编号,从第s个猴子开始进行1到m的报数,报数到第m的
数据 g++ #define -
报数问题。
题目描述 N 个人围成一圈,编号分别为 1,2,3……N ,第一个人从 1 报数,按照编号顺序依次报数,报 M 的人会离开队伍,然后下一个
c++ i++ #include 数据