Android开发之不用for,if,while计算1--100之间的和
来源:互联网 发布:matlab量化投资源码 编辑:程序博客网 时间:2024/06/05 15:00
在不使用if,while,for,的前提下打印出1--100之间的数字并计算1--100之间数字的和。大家看到这里的时候,是不是有点不知所措,我们之前计算这个都是要循环来实现,即便是不用循环用递归实现的话,总要用if来作判定,然后然后返回一个值吧!但是在这里,这些都被限制了,怎么办呢?
大家想一下,有一个很特殊的运算符,有屏蔽的效果,是谁呢?他就是 && ,如 : a&&b++ 当a为真的话,b的值会自增1,但是如果a为假,则b++不会执行,b还是原来的b。
我们就应用这个只是来实现下我们的题目。
我们先看下用Java如何实现:
- public static int printQ(int x){
- System.out.println(x);
- int y=(x!=0&&x!=1)?printQ(x-1):0;
- return x;
- }
- public static int sum(int x){
- int s=x;
- int y=(x!=0)?s+=sum(x-1):0;
- return s;
- }
- public static void main(String[] args) {
- printQ(100);
- int s=sum(100);
- System.out.println("1--100之间数字的和::"+s);
- }
在这里我们用到了三元运算符: 表达式?结果1:结果2。
下面我们来看下用C++代码的实现:
- int print(int x)
- {
- /*这两个方法都是可以的哦
- x&&printf("%d ",x);
- x&&print(x-1);
- return x;
- */
- printf("%d ",x);
- x!=0&&x!=1&&print(x-1);
- return x;
- }
- int sum(int x)//当然这个方法也可以使用上面的三操作符
- {
- int s=x;
- x&&(s+=sum(x-1));
- return s;
- }
- int main(int argc, char* argv[])
- {
- print(100);
- int s=sum(100);
- printf("\n%d::::::",s);
- return 0;
- }
我们这里没有使用三元运算符。
那么为什么在java代码中也像c++代码一样不用三元运算符呢?
因为在c++中我们知道 任何一个不等于0的数值和true是等价的,但是在java中可不是这么定义的!
java中的Boolean类型只有两个值,那就是true和false。
所以要想在java中不用三元运算符,我们还需要继续修改我们的程序。。。。。
另外一种方法:
使用switch代替if,使用goto代替循环,比较“投机取巧”。
0 0
- Android开发之不用for,if,while计算1--100之间的和
- 不用for,if,while计算1--100之间的和
- 计算1-n的和(不用for, while, goto, if, else, switch, case和三目运算符, 也不用乘除法)---利用pow函数
- 计算1-n的和(不用for, while, goto, if, else, switch, case和三目运算符, 也不用乘除法)---利用构造函数
- 计算1-n的和(不用for, while, goto, if, else, switch, case和三目运算符, 也不用乘除法)---利用间接递归
- 计算1-n的和(不用for, while, goto, if, else, switch, case和三目运算符, 也不用乘除法)---利用多态性
- js算法一则:不用if。。while。。for等循环和判断语句实现1+2+3+...+n的和
- 不用循环 if for while 求1 。。。 n 之和
- Python之if,for和while循环
- 不用乘除,for,while,if,else,switch,case ?:等求1+2+..+n的值
- java 用 for do...while 和 while循环求1到100之间的偶数和
- Python的控制语句,(if,while,for)之if
- 求1+2+...+n的前n项和,但不用乘除法、for、while、if、else、switch、case等关键字及条件判断语句
- 黑马程序员之C#编程基础学习笔记:用while计算1到100之间整数的和;
- for/while和$*之间
- 不用if,for等关键字计算1+2+...+n的结果
- SQL Server(通过while 计算1---100之间奇数的和。通过while 计算1---100之间偶数的和。)
- 怎样不用判断(if else等)和跳转语句(for while 等)求和以及连续输出
- Hibernate缓存
- Java 集合框架源码分析(三)——HashMap 转载BridgeGeorge Java 集合框架源码分析(三)——HashMap
- UML图
- 从 DOCTYPE 和 CSS 盒模型讲起
- 《Spring敲门砖之基础教程第一季》 第一章 概要介绍
- Android开发之不用for,if,while计算1--100之间的和
- Java_数组续集
- Android自定义适配器父类继承BaseAdapter,自定义生成对话框工具类
- 【win32】day05-鼠标消息/定时器消息/菜单
- hdu 5773 (The All-purpose Zero)
- 文章推荐
- 数据结构实验之二叉树五:层序遍历
- 上证指数大盘分析
- cmd 执行oracle sql脚本