利用三元运算符求1+2+3+...+n,要求不能使用乘,除,for ,while,if ,else ,switch,case (java语言实现)

C语言switch case语句详解与性能优化 在编程中,多路分支是常见的控制结构需求。传统if-else语句在处理大量离散条件时存在可读性和效率问题。switch case作为结构化编程的重要特性,通过跳转表机制实现高效分支,特别适合处理整型值的多路判断。其核心原理是将表达式值与case常量匹配,直接跳转到对应代码块,避免了if-else的逐级判断。在嵌入式系统和性能敏感场景中,switch case通常比等效if-else快20%-30%。典型应用包括状态机实现、命令解析和菜单处理等。理解case穿透特性和break语句的正确使用是掌握该语法的关键, 阅读详情

这道题在《剑指offer》上是以c语言写的,书上给了三种方式,下面博主是以java语言写的。虽然博客上也有其他博主写了很多解法,但感觉还是有点复杂,下面博主以三元运算符和递归实现。

代码如下:

首先写一个Solution的类,里面包含一个方法iSum()。核心是方法里面的三元运算符。

/*
 * 要求只利用三元运算符求1+2+3+...的值
 */
package testdemo;

public class Solution {
	static int sum;
	public int iSum(int n){
		
		sum=sum+n;//求和
		
		sum=n==0?sum:iSum(--n);//判断n的值,若不为0,再递归iSum这个函数
		
		return sum;
		
	}
	public static void main(String[] args) {
		Solution sl = new Solution();
		sl.iSum(10);
		System.out.println(sum);
		
	}
 
}

 

递归 1+2+3+4+...+n c语言程序设计教程(第二版)谭浩强,经典例题,对于学习c语言有很大帮助 立即下载

相关推荐

【NVIDIA驱动的顽固问题】---- /dev/sdax:clean,xxx/xxx files,xxx/xxx blocks ---- 最全解决方法

本文的意义在于整理总结关于此问题的全部解决方法,希望能给大家节约时间。

lc1852109的博客 3127

求1 2 3 java_求1+2+3+...+n,Java代码实现

不使用乘除法、switch、while、else、for、if、case等关键字以及条件判断语句(A?B:C)求1+2+3+...+n的Java代码实现和思路分享。思路1代码实现:classassist{public:assist(){N++;sum+=N;}staticvoidreset(){N=0;sum=0;}//在VS中不需要此调用函数也可以(不进行多加一次)stati...

weixin_39772388的博客 1309

C# WPF多页面间的数据共享(经典)

实现页面间的数据共享有很多方法,比如:①事件的发布订阅 ②委托③ioc容器④静态类等,这节主要通过静态的集合实现数据的添加和获取。

sf315418的博客 638

算法系列——求1+2+3+...+n

题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。解题思路可以利用pow()方法和移位运算利用求和公式 (1+n)*n/2= (n²+n)>>1利用递归和短路求值原理int sum=n; sum>0&&((sum+=sum(n-1))>0)程序实现pow()方法和移位运算 public int Sum_

BridgeGeorge 4312

WIFI 相关的频偏调试以及天线调试记录

WIFI RF 相关的频偏调试以及天线调试 1,频率误差(Frequency Error) 频率误差(Frequency Error):表征射频信号偏离该信号所处信道中心频率的大小,单位PPM。频偏误差要求范围如下表。 频偏越小越好。PPM的计算公式如下: 问题: 我们ESP8089认证测试的时候频偏测试超了。需要修改哪些呢。 测试频率点在2.411865385GHz 宣称点:2.412GHz 频率偏移计算:{(2.412GHz-2.411865385GHz)÷2...

armkits的博客 1万+

Jenkins中文显示不全?三步搞定Locale插件+汉化包的正确安装姿势

本文针对Jenkins界面中文显示不全问题,提供从原理到实战的深度解决方案。文章详细解析了Locale插件与中文语言包的核心机制,并分步指导如何通过配置JVM环境、正确安装插件及执行深度排查,彻底解决汉化顽疾,实现Jenkins界面的完美中文显示。

weixin_42611310的博客 259

用C语言实现1+2+3+4+5+.....+n的累加

问题描述:用C语言实现1+2+3+4+5+…+n的累加。 这里有两种方法可以借鉴。 方法一:使用for循环。具体代码如下: #include<stdio.h> int add(int n){ int i,sum=0; for(i=1;i<=n;i++){ sum=sum+i; } return sum; } int main(){ int n,s; prin...

qq_40623598的博客 5万+

ARIMA模型的R实现

1.模型简介 ARIMA模型,全称差分自回归移动平均模型。可以看作是差分运算和ARMA模型的结合。主要是针对具有线性趋势的非平稳的时间序列,来进行建模预测。 ARIMA模型的形式如下: Φ(B)∇

heirenmin的博客 1万+

C语言-----计算1+2+3+4+.....+n,n从键盘输入(累加求和)

C语言-----计算1+2+3+4+.....+n,n从键盘输入(累加求和)

qq_48116514的博客 2953

高通Camx功能feature分析之八:高通NCS服务之架构和初始化

本文介绍了高通NCS(NONCameraSensor)服务的架构与初始化流程。NCS服务通过QMI接口访问非相机传感器,为CameraEIS、AEC等算法节点提供陀螺仪、加速度计等传感器数据支持。文章详细解析了NCS服务的分层架构,包括客户端、服务端、QSEE接口实现等组件,并重点分析了初始化过程中获取传感器列表、查询能力等关键步骤。通过camxsetting.xml中的enableNCSService开关控制服务启动,初始化过程涉及QSEE单例创建、传感器能力查询等核心操作。后续文章将继续深入讲解相关技术

929

《UDS协议从入门到精通》系列——图解0x27:安全访问

什么是安全访问服务?应用场景和基本原理是什么?全网最直观详细的图解UDS-0x27:安全访问服务!!

车载系统攻城狮 7233

c语言完成:求1+2+3+4+...+n, 要求n从键盘输入。 示例:输入“5”,输出“sum=15”。...

这是一个简单的程序,可以这样实现: #include <stdio.h> int main() { int n, sum = 0; printf("请输入一个整数n: "); scanf("%d", &amp;n); for (int i = 1; i <= n; i++) { sum += i; } printf("sum = %d...

weixin_42599908的博客 2779

APP签名验证全栈破解:Frida Hook绕过+算法逆向+Python一键调用(附可运行脚本)

做过APP逆向和爬虫的同学,肯定都被签名验证折磨过:改了一行代码重新打包,APP直接闪退;抓包看到接口有个sign参数,翻遍JS找不到加密逻辑;好不容易找到加密函数,一调用就崩溃。客户端APK签名校验服务端接口签名验证。前者防止你篡改APP,后者防止你伪造请求。很多人卡在第一步,改完APK就闪退,根本没机会碰接口。本文基于真实项目实战,分享一套通用的签名验证破解方案。从客户端APK签名校验的Frida Hook绕过,到服务端sign算法的逆向还原,最后用Python实现一键调用。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 963

(java)求1+2+3+...+n:不使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句

求1+2+3+…+n 题目:求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 思路:刚拿到这题,感觉好难,什么方法都不能用,不过仔细想了想,也找到了切入口,首先得知这题是要用到递归的,但是不能用if,while,for等,那要怎么做才能递归呢?-----短路定理 逻辑运算符“&&”和“||”都具有短路特性。 逻辑与的短路特性 a&&b 只有a为真时,才需要判断b的值,如果a为假时,

fjswcjswzy的博客 586

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A? B:C)

题目:求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A? B:C) 这道题确实有点偏,网上大部分人给出的solution都是用递归。 public int sum(int n) {     if(n==1)         return 1;     else 

u010993983的专栏 4989

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

知识扩展--if...else...与switch...case...的执行原理

一、简述   编程语言中的条件分支结构有两种:if-else和switch-case,这两种条件分支之间可以相互转换,但是也存在一些区别,那么什么时候该用if-else,什么时候该用switch-case呢?这就需要我们去了解它们之间的练习和区别了。 1.1 if...else...简述 if-else的基本知识点包含4点: 单独if语句:单分支结构,简单的一个控制语句,...

weixin_30697239的博客 750

剑指offer:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

剑指offer算法题 进制转换 数学 题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 题目分析 1.需利用逻辑与的短路特性实现递归终止。 2.当n==0时,(n>0)&&((sum+=Sum_Solution(n-1))>0)只执行前面的判断,为false,然后直接返回0; 3.当n>0时,执行sum+=Sum_Solution(n-1),实现递归计算Sum_Solutio

gaozhuang63的博客 131

c/c++:顺序结构,if else分支语句,do while循环语句,switch case break语句

c/c++:顺序结构,if else分支语句,do while循环语句,switch case break语句

weixin_46838716的博客 1454

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)1. 可以巧妙运用短路与2. 用条件结构示例 1. 可以巧妙运用短路与 package test; public class Test { int sum=0; public int add(int i) { boolean s=((i>0...

TingtingYang 204

*求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)**

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C) Way1 Java 方法 考虑使用&& 逻辑与运算 运行时间:13ms 占用内存:9312k boolean t=(n>0)&&(sum+=Sum_Solution(n-1))>0;//Java 声明boobean数...

抹茶饼的博客 358

Java求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句

题目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 public class Solution { /** * * 解题思路: * 1.需利用逻辑与的短路特性实现递归终止。 * 2.当n==0时,(n>0)&&((sum+=Sum_Solution(n-1))>0)只执行前面的判断,为false,然后直接返回0;.

luzhensmart的专栏 789

不使用乘除法、for、while、if、else、switch、case等关键字求1+2+3+...+n的和(java代码实现)

题目:求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 解题思路: 由于这里不给用乘除法,也不给用for和if语句,不给用三目运算符,此时,我们就只剩下加减法和&&跟 || 运算符以及 更少用到的 &、|、<<、>>等等关键字了。 我对这道题的解题思路吧,其实很简单,你只要知道在&&运算中,如果前面的条件满足,那么他会判断后面的条件是否也满足,如果前面的条

越努力越幸运的博客 711

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。Java实现

前几天跟同学交流听说一个比较有意思的oj题目,具体描述如下: 题目描述: 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 输入: 输入可能包含多个测试样例。 对于每个测试案例,输入为一个整数n(1 输出: 对应每个测试案例, 输出1+2+3+…+n的值。 样例输入: 3 5 样例

李耳的代码之路 5131

Java之《剑指Offer》: 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

1. 题目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 题目分析: 不使用循环,条件反射就是循环的另一种表示形式,那就是递归 总共有n个变量,和的形式怎么相加呢?怎么控制停止的条件呢?想到了boolean,boolean有true和false,怎么才能产生true和false?那就想到了逻辑运算符&&或者是||,接下来就是逻辑运算符两边的条件怎么写了 定义遍历 ...

CodingLJ 214

求解1+2+3+...+n,要求不能使用乘除法、while、for、if 、else、switch、case等关键字

方法一:利用递归以及&&的短路原理int Sum(int num, int& sum) { num&&Sum(num-1,sum);//递归跳出条件,当num为假时,无需判断后序语句,返回sum+=n return sum +=num; } int main() { int num= 0; int sum = 0; cin>>num; cout <<

深海一诺 7566

C++的流程控制

本文介绍了C++中条件判断和循环结构的使用方法。在条件判断部分,详细讲解了if、else if、else语句的用法与嵌套规则,以及switch语句的语法和向下击穿特性。同时介绍了三元运算符和逻辑运算符的使用技巧。在循环部分,重点阐述了for循环的语法结构和使用场景,并通过计算公倍数的实例展示了优化思路。此外还简要提及了while和do...while循环的基本语法。文章通过大量代码示例,帮助读者掌握C++中流程控制的核心概念和实用技巧,为编写高效程序打下基础。

FunnyAWM的博客 555
上一篇: 求阶乘和的值(java语言实现)(for循环和方法体两种解法)
下一篇: 2018网易春招数对编程题(暴力版和优化版)
Max_bin
博客等级 码龄10年 25粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值