java在线编程编程求1+2+3…+100的和(用递归法)

经典算法探究(95)
比较简单的递归,思路有点同我之前的走楼梯问题
#include &iostream&
using namespace std;
int fun(int i,int pos,int n){
fun(i+1,pos*(i+1)n);
int main(){
cout&&fun(1,1,5);
我这里自己编代码时测试数据给了10,然后跑出来数据30多万,我还以为错了呢 = =后来想想发现还是自己错了 = =
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:351790次
积分:9556
积分:9556
排名:第1863名
原创:598篇
转载:148篇
评论:33条
文章:23篇
阅读:28809
文章:16篇
阅读:9201
文章:54篇
阅读:16126
文章:38篇
阅读:25332
(6)(14)(7)(10)(6)(22)(1)(2)(8)(22)(7)(40)(43)(89)(118)(48)(2)(25)(55)(60)(66)(83)(12)26917人阅读
java(13)
public class Test1 {
int sum=0;
public void sum()
sum+=a;
a++;
if(a&=1000)
sum();//调用自身实现递归
public static void main(String[] args) {
Test1 test=new Test1();
test.sum();
System.out.println(&计算结果:&+test.sum+&!&);
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:460436次
积分:5083
积分:5083
排名:第5468名
原创:88篇
转载:77篇
评论:47条
(1)(1)(1)(4)(1)(1)(1)(1)(1)(1)(6)(3)(1)(1)(1)(1)(3)(1)(4)(1)(1)(3)(1)(2)(7)(3)(9)(9)(2)(4)(15)(4)(7)(10)(17)(9)(8)(1)(1)(6)(8)(1)(1)(2)递归实现1到100累加的和,出点问题求助【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:635,770贴子:
递归实现1到100累加的和,出点问题求助收藏
java-亚马逊819店庆,一站购全球,全品类齐放价,钜惠就在眼前!亚马逊819店庆,正品低价,送货上门,货到付款!
一直在报错误,我觉得逻辑上没问题,但是编译就是通不过,求前辈们帮看一眼...
调用函数时候别定义
传参数你把参数类型都传进去了
sum(int min, int max)是个啥...
这不是两个for循环就能完成吗?为什么要去调用啊
public class Testdigui {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i &= 100; i++) {
System.out.println(sum);
}}//这样是不是也可以呢~
干嘛不用循环语句100次sum+1就好了
不用循环,你上边的已经是递归调用从1加到100了。
用了递归函数就可以算出总和了,不用那个for循环了。。。
你这个是尾递归,虚拟机其实给你优化成了循环了。你运行的时候其实跑的是循环
调用函数是:min,max
不是整数吗?我自己都被吓到了
你想被调函数里面用递归那你干嘛还在主函数里面写个for循环又调用呢?好高深!!
求问楼主,你用的什么编辑器,文本程序很漂亮
static int sum(int x){int sum =0;for (int i = 0; i & i++) {sum += (i+1);}}public static void main(String []args){int sum =0;for (int i = 1; i & 101; i++) {sum += sum(i);}System.out.println(sum);}
算重复了,上面的函数已经是递归了,下面又有循环。有可能会栈溢出或者int越界
孩子,你的递归写的有问题,给你看一个递归.你想想为什么这样写,明白之后你会发现递归要写是很容易的.
为啥不用循环?累加多费资源
s=s+sum(int min,int max);如果是在定义方法的时候,那方法参数里肯定要把类型带上,可问题是你这里是要调用方法啊,直接要给里面传参数的,s=s+sum(min,max);这就完了啊,你前面还带个int是要闹哪样嘞
1到100每个数的累加再求和,题目不是怎么求的么
我就不明白了这么简单的一个题被你搞这么复杂
代码不就是要简洁明了么
楼主太逗了
int fun(int n) {return n == 1 ? 1 : (n+1) * n / 2 + fun(n-1);}
好特别的实现
函数调用不需要传参数类型
登录百度帐号推荐应用JAVA 递归 我想算4!+3!+2!+1!我用了连个递归
public class MethodTest {
&& &public static int factorail(int num){
&& &&& &if(num ==1){
&& &&& &&& &return 1;
&& &&& &}else{
&& &&& &&& &
&& &&& &&& &return num*factorail(num-1);
&& &public static int total(int num1){
&& &&& &if(num1 == 1){
&& &&& &&& &return 1;
&& &&& &}else{
&& &&& &&& &sum = factorail(num1)+ total(factorail(num1-1));
&& &public static void main(String[] args) {
&& &&& &System.out.println(total(4));
我认为是算sum的那个方法里面的递归调用递归出了问题 ,谁能帮我看看!
package org.mon.
public class MethodTest {
private static int sum = 0;
public static int factorail(int num) {
if (num == 1) {
return num * factorail(num - 1);
public static int total(int num1) {
if (num1 == 1) {
sum += factorail(num1);
total(--num1);
public static void main(String[] args) {
System.out.println(total(4));
求好评,满分
--- 共有 3 条评论 ---
: 我只是修改你的代码而已,细节没考虑这么多,不好意思
这个代码里面还有一个小问题
就是1!没有计算 把第二个方法里面的num1 ==0 return 0;就对了
好评好评!嘿嘿 !厉害厉害!
我帮你测试过了,java.lang.StackOverflowError 报了这个异常哦,明显你算法不对了
确实不对…total里那个else分句中total传的参数错了
应该是total(num1-1)
求好评啊,我帮你做出来了.你本来传参就不对了
引用来自“moziqi”的评论package org.mon.
public class MethodTest {
private static int sum = 0;
public static int factorail(int num) {
if (num == 1) {
return num * factorail(num - 1);
public static int total(int num1) {
if (num1 == 1) {
sum += factorail(num1);
total(--num1);
public static void main(String[] args) {
System.out.println(total(4));
求好评,满分
的确呢,我总是把重心放在了第二次的累加上面,以为不断累积就实现了递归,但是没有考虑到参数应该递减!很不错
public class JavaTest {
& & private long jiecheng(int n){
& & & & long ret = 1; & & & &
& & & & for(int i = 2; i &=i++){
& & & & & & ret = ret + i *
& & public static void main(String[] args) {
& & & & JavaTest obj = new JavaTest();
& & & & System.out.println("1! = " + obj.jiecheng(1)); & & & &
& & & & System.out.println("2!+ 1! = " + obj.jiecheng(2)); & & & &
& & & & System.out.println("3! + 2!+ 1! = " + obj.jiecheng(3)); & & & &
& & & & System.out.println("4! + 3! + 2!+ 1! = " + obj.jiecheng(4)); & & & &
--- 共有 3 条评论 ---
: 我看着貌似也不是,但不确定!自己调用自己,他这个是在for循环里面进行的变量控制!
: 递归在一次调用函数,这应该不是吧
这么着写算是递归算法吗?我能看明白方法,但是我不确定!
public class MethodTest {&
& & public static int factorail(int num){&
& & & & if(num ==1){&
& & & & & & return 1;&
& & & & }else{&
& & & & & & &
& & & & & & return num*factorail(num-1);&
& & & & }&
& & public static int total(int num1){&
& & & & if(num1 == 1){&
& & & & & & return 1;&
& & & & }else{&
& & & & & & sum = factorail(num1)+ factorail(num1-1);&
& & & & }&
& & public static void main(String[] args) {&
& & & & System.out.println(total(4));&
--- 共有 1 条评论 ---
total 中的else 中写错了
大哥们,你们用int计算,能计算几的阶乘?几十就会超出int的范围,简易用bigdecimal来实现,至少能算几千

我要回帖

更多关于 java经典编程300例 的文章

 

随机推荐