跪求一个50行左右的用JAVA语言写的ACM题目,要有输入输出

主要是要代码 有输入输出的

ACM题目:
Feli的生日礼物Problem
Felicia的生日是11月1日(和Kitty是同一天生的哦)。于是Feli请来Kitty一起过生日。Kitty带来了最新款的“Kitty猫”玩具准备送给Feli,不过她说,这份礼物可不是白送的。Feli要帮她一个忙,才能够得到心仪已久的玩具。 Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100 *_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。 Feli听了大吃一惊。要知道,算出n!是一个无比艰巨的任务。Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。Feli想了想,立刻动手写了个程序算出了正确的答案。现在,请你也试试看!注意哦,AC的男生将会得到一个“Hello Kitty”计算器(可编程,CPU 1THz,Mem 1TMB),AC的女生将会得到一个仿真“Hello Kitty”宠物(善解人意,无须喂养,智商1101,附带写情书功能)。

Input
每行一个n,直到输入数据结束

Output
对应输入的n,每行输出一个答案

Sample Input
1101

Sample Output
8
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-28
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3546

import java.util.*;
import java.io.*;
import java.math.*;
public class Main {
public static void main(String[] args) {
String str;
BigInteger num[] = new BigInteger[10];
Scanner in = new Scanner(System.in);
int i;
for(i=0;i<10;i++)num[i]=BigInteger.ONE;
while(in.hasNext())
{
str=in.next();
if(str.charAt(1)=='=')
{
num[str.charAt(0)-'A']=num[str.charAt(0)-'A']=num[str.charAt(2)-'A'];
}
else if(str.charAt(1)=='+')
{
num[str.charAt(0)-'A']=num[str.charAt(0)-'A'].add(num[str.charAt(3)-'A']);
}
else
{
num[str.charAt(0)-'A']=num[str.charAt(0)-'A'].multiply(num[str.charAt(3)-'A']);
}
}
for(i=0;i<10;i++)System.out.println(num[i]);
}
}本回答被提问者采纳
第2个回答  2010-12-28
什么是ACM啊?本回答被网友采纳
相似回答