一个整数,大于0,不用循环和本地变量,按照 n, 2n, 4n, 8n 的顺序递增,当值大于5000 时,把值按照指定顺序输出来。

 1 package sfbc;
 2 /**
 3  * 一个整数,大于0,不用循环和本地变量,按照 n, 2n, 4n, 8n 的顺序递增,当值大于5000
 4     时,把值按照指定顺序输出来。
 5     例: n=1237
 6     则输出为:
 7     1237,
 8     2474,
 9     4948,
10     9896,
11     9896,
12     4948,
13     2474,
14     1237,
15     提示:写程序时,先致谢按递增方式的代码,写好递增的以后,再增加考虑递减部分。
16  * @author trfizeng
17  *
18  */
19 public class Recursion {
20     public static void main(String[] args) {
21         count(1237);
22         //System.out.println(2 << 1);
23     }
24     public static void count(int n) {
25         System.out.println(n);
26         if (n <= 5000) {
27             n*=2;
28             count(n);
29             n/=2;
30         }
31         System.out.println(n);
32
33         /*System.out.println(n);
34         if (n <= 5000) {
35             count(n * 2);
36         }
37         System.out.println(n);*/
38     }
39 }

1237
2474
4948
9896
9896
4948
2474
1237

时间: 2024-10-13 02:40:52

一个整数,大于0,不用循环和本地变量,按照 n, 2n, 4n, 8n 的顺序递增,当值大于5000 时,把值按照指定顺序输出来。的相关文章

输入一个整数n(0&lt;n&lt;2147483647)打印“*”组成的三角形

描述    输入一个整数n(0<n<2147483647)打印"*"组成的三角形, 如下图    输入    第一行有一个整数n(0<n<2147483647)    输出    "*"组成的三角形 public class Main {     public static void main(String[] arg){         int n = 0;         Scanner scanner = new Scanner(Sys

高效求一个整数中1的位数

求一个整数中0或1的位数,有很多方法可以使用除法,求余等方法,也可以使用位运算,相比前者效率更高. #include <stdio.h> #include <stdlib.h> //求一个整数 1的位数 int count0(int x) { int num=0; while(x) { num+=x%2; x/=2; } return num; } int count1(int x) { int num=0; while(x) { num+=(x&0x01); x>&

Java循环练习:已知s=1×2×3×…×n,计算出s不大于5000时n的最大值

package practiceGO; /*    1.已知s=1×2×3×-×n,计算出s不大于5000时n的最大值.  */ public class Cto { public static void main(String[] args) { int s = 1; for(int n=2; ;n++){ s = s*n; if (s>5000) { System.out.println(n-1);//s大于5000时,n回退一步即s不大于5000时的值 break; } } } } 运行结

C++在循环内和循环外定义变量的差异(如何写出高效的for循环)

写这篇文章的原因是我在问答平台看到的一个问题: C++内层循环中定义变量和在外面定义比影响大吗? 问题来自:http://ask.csdn.net/questions/176270 例如: for(int i=0;i<999;i++) { for(int j=0;j<999;j++); } 内层循环每次都定义j会造成多大的消耗呢? 此处我给出的回答是: 这个需要看你具体用什么编译器.不过主流编译器(如vs和gcc)这一块优化都比较好,不会反复分配变量. 看到答案和评论,好像有很多人对这个感兴趣

线程本地变量ThreadLocal源码解读

  一.ThreadLocal基础知识   原始线程现状: 按照传统经验,如果某个对象是非线程安全的,在多线程环境下,对对象的访问必须采用synchronized进行线程同步.但是Spring中的各种模板类并未采用线程同步机制,因为线程同步会影响并发性和系统性能,而且实现难度也不小. ThreadLocal在Spring中发挥着重要的作用.在管理request作用域的bean,事务管理,任务调度,AOP等模块中都出现了它的身影. ThreadLocal介绍: 它不是一个线程,而是线程的一个本地化

java线程本地变量

ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量).也许把它命名为ThreadLocalVar更加合适.线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突. 从线程的角度看,每个线程都保持一个对其线程局部变量副本

如何起好一个好看、精简、无歧义的变量名?

湾区日报上分享的一篇文章,文章的作者在Google设计Dart语言,就变量命名方面给了4点建议,文中也列出了好变量名.坏变量名的对比.不管作者的看法与你实际中的命名习惯是否一致,看完这篇文章,相信可以在变量命名方面有一些新的思考. google做的最明智的规定之一就是严格执行code review.每一个改动在上线之前,都要经过两种形式的review.首先,团队中的人会进行常规的review,以确保代码完成了它应该完成的功能. 接下来还会进行可读性层面的review.顾名思义,它是为了确保代码是

程序结构之静态本地变量

静态本地变量: 在本地变量定义时加上static修饰符就成为静态本地变量 当函数离开的时候,静态本地变量会继续存在并保持其值 静态本地变量的初始化只会在第一次进入这个函数时做,以后进入函数时会保持上次离开时的值 实例: #include <stdio.h> int main(int argc,char const *argv[]) { f(); f(); f(); return 0; } int f() { static int all; printf("%d\n",all

while循环操作,输入一个整数放入到变量n中, 如果这个整数大于0,那么计算1+2+3+……+n的结果, 否则输出“输入的数据有错误”。

import java.util.Scanner; /** * @author 蓝色以太 while循环操作,输入一个整数放入到变量n中, 如果这个整数大于0,那么计算1+2+3+--+n的结果, * 否则输出"输入的数据有错误". */ public class While2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("