java吧 关注:1,237,041贴子:12,708,149

一道算法题目啊,求大神。

只看楼主收藏回复

打印出100的阶乘(即1*2*3*…*100),不得用bigint和bigdecimal等big数据类型变量
百度全是BIG类型的,搜索了半天思路在字符串和数组上,但是还是不知道如何实现。


IP属地:广东1楼2014-05-04 17:07回复
    for
    循环
    ——我爱不爱你,爱久见人心。


    来自Android客户端2楼2014-05-04 17:18
    收起回复
      public static void main(String[] args) {
      // TODO Auto-generated method stub
      for(int i=1;i<=100;i++){
      System.out.print(i+"*");
      }
      }
      是这个效果?


      IP属地:广西3楼2014-05-04 17:26
      回复
        public static void main(String[] args) {
        for (int i = 1; i <= 100; i++) {
        if (i == 100) {
        System.out.println(i);
        break;
        }
        System.out.print(i + "*");
        }
        }


        IP属地:广西4楼2014-05-04 17:31
        收起回复
          大数乘法,搜下吧


          IP属地:湖南来自Android客户端7楼2014-05-04 18:09
          回复
            用数组模拟。搜索“大数阶乘”就懂。


            来自Android客户端9楼2014-05-04 18:18
            回复
              大整数的四则运算可以用字符串


              11楼2014-05-04 18:23
              回复

                #include<stdio.h>
                int main()
                {
                int a[10000];
                int i,j,c,m,n;
                while(scanf("%d",&n)!=EOF){
                a[0]=1;
                m=0;
                for(i=1;i<=n;i++)
                {
                c=0;
                for(j=0;j<=m;j++)
                {
                a[j]=a[j]*i+c;
                c=a[j]/10000;
                a[j]=a[j]%10000;
                }
                if(c>0) {m++;a[m]=c;}
                }
                printf("%d",a[m]);
                for(i=m-1;i>=0;i--) printf("%4.4d",a[i]);
                printf("\n");
                }
                return 0;
                }
                c语言版,自己改成java的吧!这是我翻我曾经的解题报告!
                    ------迷恋,是一种态度!


                IP属地:北京12楼2014-05-04 18:30
                回复
                  虽不明,但觉厉。


                  来自Windows8客户端13楼2014-05-04 20:06
                  回复
                    public class x{
                    public static void mian (String[]args){
                    Scanner input=new Scanner(System.in);
                    int sum=1;
                    sysou........("输入你要输入的数");
                    int a=input.nextInt();
                    for(int i=1;i<a;i++){
                    sum=sum*i;
                    sysou................(i+"*");
                    }
                    sysou........("="+sum)
                    }
                    }


                    白银星玩家
                    百度星玩家累积成长值为1,去领取
                    活动截止:2100-01-01
                    去徽章馆》
                    IP属地:湖北14楼2014-05-04 20:12
                    收起回复
                      专业挽尊三百年!


                      16楼2014-05-04 22:08
                      回复
                        数字比较大


                        来自Android客户端17楼2014-05-04 22:26
                        回复
                          感觉不用不行,尝试定义一个结果变量,然后把值转化到字符串或数组里。


                          来自Android客户端18楼2014-05-04 22:27
                          回复