| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1545 人关注过本帖
标题:谁来帮我看看 一个简单的问题
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用hgfg1645在2013-5-6 10:41:50的发言:

你这个应该算的是 6!吧   题目要求是 求1到6的阶乘 的和   应该是需要双循环的  就是在双循环的时候出现错误了  不知道错哪了   不知道是不是逻辑错误
你为啥不试试呢  我的代码就是求1+2+3+4+5+6)!的  应该等于873吧

DO IT YOURSELF !
2013-05-06 10:43
hgfg1645
Rank: 1
来 自:河南商丘
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-1-20
收藏
得分:0 
class tanhe
{
    public static void main(String[]args)
    {
        int n,i,m,j,sum;
        n=2;
        sum=0;
            
        for(i=1;i<=n;i++)
        {
        
            for(j=1;j<=i;j++)
            {
                m=1;
                m=m*j;
              sum+=m;
            }
            
        }
              
        System.out.println("1!+2!+3!+....n!=" +sum);
    }
}

我现在改成这样了  将m=1  还有sum+=m; 挪到第二个循环里了   好像很接近真相了  就是好像结果多加了一个1  大家再帮忙看看怎么改 !!

进取——不停息
2013-05-06 10:48
hgfg1645
Rank: 1
来 自:河南商丘
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-1-20
收藏
得分:0 
回复 11楼 wp231957
老大  好像跟题目要求不符 啊   我改了一下  你再看看

进取——不停息
2013-05-06 10:48
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
以下是引用hgfg1645在2013-5-6 10:48:53的发言:

老大  好像跟题目要求不符 啊   我改了一下  你再看看
必须使用双循环吗
程序代码:
int main ()
{
    int sum=0;
    for(int j=1;j<=6;j++)
    {
        int n=1;
        for(int i=1;i<=j;i++)
        {
            n=n*i;
        }
        sum+=n;
    }
    printf("%d",sum);

    return 0;
}


DO IT YOURSELF !
2013-05-06 10:52
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:1 
以下是引用wp231957在2013-5-6 10:27:21的发言:

#include  
 
int main ()
{
    int n=1;
    int sum=0;
    for(int i=1;i<=6;i++)
    {
        n=n*i;
        sum+=n;
    }
    printf("%d",sum);
 
    return 0;
}java 不懂  这是一段c代码
不懂你也顶
2013-05-06 11:30
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
java 和c 多少有些亲戚

DO IT YOURSELF !
2013-05-06 11:52
hgfg1645
Rank: 1
来 自:河南商丘
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-1-20
收藏
得分:0 
回复 16楼 wp231957
java 是面向对象编程  C 是面向过程编程  java要比C 简单点  C 中的指针 继承之类的  太麻烦  看着都头晕  java要简单 我觉得

进取——不停息
2013-05-06 12:12
ddtet
Rank: 4
等 级:业余侠客
帖 子:32
专家分:211
注 册:2013-5-4
收藏
得分:1 
@@"
8 樓不是把答案說出來了嗎?

思考一下…
計算  1!    m  從 1 開始…
計算  2!    m  從 1 開始…
計算  3!    m  從 2 開始…(←上一輪的 2! 的結果)
(從這之後的就都錯了)

變量在有需要的時間需要對它作"初始化",
不然會混入其它的東西進來。

希望這樣的說明夠清楚。
2013-05-06 15:37
littleR
Rank: 2
等 级:论坛游民
威 望:1
帖 子:13
专家分:50
注 册:2013-5-6
收藏
得分:1 
先上代码,你试试
package my.liu.qiuhe;

public class DiGuiQiuHe {
//求1!+2!+3!+.....+n!的和
    public static void main(String[] args) {
//        用for循环
        int n = 5;
        int sum = useFor(n);
        System.out.println(sum);
        
//        用递归算法
        DiGuiQiuHe dg = new DiGuiQiuHe();
        sum =0;
        for(int i=1;i<=n;i++){
            sum += dg.useDiGui(i);
        }
        System.out.println(sum);
    }
    public static int useFor(int n){
        int sum = 0;
        int m=1;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=i;j++){
                m*=j;
            }
            sum+=m;
            m=1;
        }
        return sum;
    }
    public int useDiGui(int n){
        int sum = 0;
        sum = fn(n);
        return sum;
    }
   
    private int fn(int n) {
        if(n==1){return 1;}
        else{
            return fn(n-1)*n;
        }
    }
}

相信,一定可以
2013-05-06 16:51
伍则帝
Rank: 3Rank: 3
来 自:四川省南充市高坪区
等 级:论坛游民
威 望:6
帖 子:100
专家分:34
注 册:2013-3-16
收藏
得分:12 
public class asdf
{
    public static void main(String[]args)
    {
        int n,i,m,j,sum;
        n=3;
        sum=0;
        m=1;
        for(i=1;i<=n;i++)
        {
            
           
             for(j=1;j<=i;j++)
             {
                  
                m=m*j;
               
             }
        
            sum+=m;
            m=1;只需这里加m=1;
        }
        
        System.out.println("1!+2!+3!+....n!="+sum);
    }
}
当m等于i=3时,计算的是2*1*2*3=12,加上1和2的就等于15了.你这个错的原因在于没有清空上次存有m中的值2.所以只需在每次用完m的值后还原它.

收到的鲜花
  • hgfg16452013-05-06 21:35 送鲜花  3朵   附言:我很赞同
2013-05-06 21:09
快速回复:谁来帮我看看 一个简单的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013141 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved