不使用局部变量和for循环或其它循环打印出如m=19,n=2結果为2 4 8 16 16 8 4 2形式的串

public static void Main(string[] args)
{
  int m = 19;
  int n = 2;
  m = Recursionmult(m, n);
  RecursionDivision(m, n);

  //测试
  m = 35;
  n = 4;
  Console.WriteLine("\nm=" + m + ",n=" + n);
  m = Recursionmult(m, n);
  RecursionDivision(m, n);

  m = 40;
  n = 5;
  Console.WriteLine("\nm=" + m + ",n=" + n);
  m = Recursionmult(m, n);
  RecursionDivision(m, n);

  m = 21;
  n = 1;
  Console.WriteLine("\nm=" + m + ",n=" + n);
  m = Recursionmult(m, n);
  RecursionDivision(m, n);

  Console.Read();
}

public static int Recursionmult(int m, int n)
{
  if (n <= m)
  {
    Console.WriteLine(n + " ");
    n = n * 2;
    return Recursionmult(m, n);
  }
  return n;
}

public static int RecursionDivision(int m, int n)
{
  if (m > n)
  {
    m = m / 2;
    Console.WriteLine(m + " ");
    return RecursionDivision(m, n);
  }
  return n;
}

测试结果:

m=19,n=2
2 4 8 16 16 8 4 2

m=35,n=4
4 8 16 32 32 16 8 4

m=40,n=5
5 10 20 40 40 20 10 5

m=21,n=1
1 2 4 8 16 16 8 4 2 1

时间: 2024-10-16 13:14:12

不使用局部变量和for循环或其它循环打印出如m=19,n=2結果为2 4 8 16 16 8 4 2形式的串的相关文章

JS中的循环结构、循环嵌套以及函数介绍

[循环结构的步骤]    *①声明循环变量    *②判断循环条件    *③执行循环体(while的{}中的所有代码)操作     *④更新循环变量    *     * 然后,循环执行②③④    *     *     * [JS中循环条件支持的数据类型]    * ①boolean:true 真     false   假    * ②string: 非空字符串为真       空字符串为假    * ③null/NaN/undefined:  全为假    * ④object:全为真 

python循环之for循环与模拟购物车小程序

for循环 for 变量 in 范围:     代码块...         contune                 #跳出本次循环接着执行下一次循环     for 变量 in 范围:         代码块...             break              #跳出本层循环,回到上一个for循环 else:                #其实for循环和while循环都有else子句,不过是当循环完全执行了才会执行     代码块...               

【代码优化】for-each代替普通的for循环或者while循环

对于集合的遍历首选方法是for-each for(Element e :c){ doSomething(e): } 这是1.5版本之后的做法:java1.5之前使用的是Iterator迭代器. 为了弄清楚为啥比普通的for循环或者whlie循环好,请看一下代码 Iterator<Element> i=c.iterator(); while(i.hasNext()){ doSomething(i.next()); } Iterator<Element> i2=c.iterator()

while 循环 于 for循环语句

while 循环 while 循环 while 条件: 如果条件是真的,就继续的循环 如果条件是假的,就停止循环 循环的意思就是让程序重复地执行某些语句,whiler循环就是循环结构的一种,当事先不知道循环该执行多少次,就要用到while循环 Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.其基本形式为 while 判断条件: 执行语句…… 这块一定要注意缩进 执行语句可以是单个语句或语句块.判断条件可以是任何表达式,任何非零

关于Qt的事件循环以及QEventLoop的简单使用(QEventLoop::quit()能够终止事件循环,事件循环是可以嵌套的)

http://www.cnblogs.com/-wang-cheng/p/4973021.html 1.一般我们的事件循环都是由exec()来开启的,例如下面的例子: 1 QCoreApplicaton::exec() 2 QApplication::exec() 3 QDialog::exec() 4 QThread::exec() 5 QDrag::exec() 6 QMenu::exec() 这些都开启了事件循环,事件循环首先是一个无限“循环”,程序在exec()里面无限循环,能让跟在ex

for循环和while循环的区别及用法

for循环和while循环是可以互相代替的,比如: for (int i = 0; i<10; i++) {...//插入语句 } 用while来写就是int i = 0;while (i<10) {...//插入语句i++;} for循环比较简洁,会比while更常用些,尤其是用array的时候,很方便的. 但是如果想做无限循环,while更方便点,比如说int i = 1;while (i == 1){ ... } 还有一种do..while,和while差不多,但是do...while在

C#中的循环语句:while循环和for循环(二)

上一篇写了while循环,这一篇就来写一写for循环.相比while循环,for循环要复杂一点,但比while循环更直观一些. for循环的格式为: for(表达式1;循环条件;表达式2) { 循环体 } 表达式1一般用来定义变量:循环条件如果为"true",那么循环继续,反之循环结束,如果是空,就变成死循环了:表达式2一般用于变量的自增或者自减.举个例子,如果在控制台中输出100个你好,用for循环来实现的话,就像这样: for(int i=0; i<100; i++) { C

C#中的循环语句:while循环和for循环(一)

假如我们要做很多事情的时候,比如说我们要输出上百个数字,一个一个输出的话不仅麻烦而且费时多.效率低.这时C#就为我们提供了更为简单的输出方法,即循环.循环类型有多种,这里我比较两种循环方式:while循环&for循环. 首先来说说while循环: While循环的格式非常简单: While(循环条件) { 循环体 } 意思是,当逻辑值是"true"时,循环体就一直不停地循环,直到逻辑值变成"false",才会停.如果逻辑值一直是true,循环就不会停,也就是

for循环、while循环

for循环 for i in range(10): if i >= 5: print(i) else: #break 跳出本层循环 continue #跳出本次循环 print("-----") for i in range(10): print(i) if i== 5: break else: #当循环正常结束时,走else print("done") while循环 count = 0 while True: print("你是风儿我是沙,缠缠绵