几道程序设计题目(JAVA)求大神指点

ParisWei 2013-11-23 10:52:41
 
1、 对于任给的一个正整数 n ,一定可以分解成若干个不同质数的幂的积, 
n=P1
k1 P2
k2„„pm
km  如:8=23、20=22x5、48=24x3、30=2x3x5,„„ 
 
输入:一个正整数。 
输出:两行正整数,第一行为质数,第二行为质数的幂次。 输入为:30 
则输出:2,  3,  5   
      1,  1,  1   

2.输入包含多行数据,每行数据是一个字符串,格式是“a/boc/d”。其中 a,b,c,d是一个0-9的整数。O是运算符“+”或者“-”。输入数据保证合法 
对于输入数据的每一行输出两个分数的运算结果。注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数 
Sample   Input : 1/8+3/8 1/4-1/2 1/3-1/3 Sample  Output:   1/2    -1/4    0
   
3.小青蛙每个白天可以向上爬m(2<=m<=10)尺,晚上下滑n(1<=n<m)尺。如果告诉你井深h(10<=h<=2000000000)尺,请计算一下,现在,它第几天可以爬上来。 Input  
有三个整数,分别表示 m n h Output 
只有一个整数,表示第几天可以爬上来。 Sample   Input 3 2 10 Sample  Output 8   

4.字母 ABCD分别表示1000,100,10,1,字符串5A9B9C9D表示5*1000+9*100+9*10+9*1. 
要求第一行输入 n,表示输入的字符数组量。从第二行开始,输入n组ABCD字符串,且1要求省略,如1D直接输入D,每组两个字符串。要求输出每组字符的和,而且要保证每组的两个字符和不超过9999  
例如  输入4           输出:     
CD   C9D          3C     
B2C2D    4B8C8D       6AC  
    9B9C9D     D          M 
     9A8B7CD  B2C8D        9M9C9X9I   

5.一个整数M,分解成 N个不重复的整数,使得这个N个整数能表示从1到M的所有整数。请编程实现,并要求N最少。例如输入M  40  求的N=4 分别为 1 3 9 27.
...全文
523 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zishinan 2013-11-27
  • 打赏
  • 举报
回复
引用 12 楼 zyc13701469860 的回复:
[quote=引用 11 楼 zishinan 的回复:] [quote=引用 9 楼 zyc13701469860 的回复:] 第3题

	public static int getResult(int m, int n, int h) {
		return (int) Math.ceil(1.0 * (h - n) / (m - n));
	}
大神啊!但是对新人不方便理解啊...得写段注释解释算法[/quote] 最后1天爬m尺,其他时间爬m-n尺,所以总时间为(h-m)/(m-n) + 1,由于(h-m)/(m-n)不一定能整除,所以要向上取整,化简下就是结果。[/quote]
Mourinho 2013-11-26
  • 打赏
  • 举报
回复
引用 11 楼 zishinan 的回复:
[quote=引用 9 楼 zyc13701469860 的回复:] 第3题

	public static int getResult(int m, int n, int h) {
		return (int) Math.ceil(1.0 * (h - n) / (m - n));
	}
大神啊!但是对新人不方便理解啊...得写段注释解释算法[/quote] 最后1天爬m尺,其他时间爬m-n尺,所以总时间为(h-m)/(m-n) + 1,由于(h-m)/(m-n)不一定能整除,所以要向上取整,化简下就是结果。
zishinan 2013-11-25
  • 打赏
  • 举报
回复
引用 9 楼 zyc13701469860 的回复:
第3题

	public static int getResult(int m, int n, int h) {
		return (int) Math.ceil(1.0 * (h - n) / (m - n));
	}
大神啊!但是对新人不方便理解啊...得写段注释解释算法
zishinan 2013-11-25
  • 打赏
  • 举报
回复
引用 7 楼 u012805640 的回复:
20行处为什么还要减去m
自己动脑筋
Mourinho 2013-11-25
  • 打赏
  • 举报
回复
第3题

	public static int getResult(int m, int n, int h) {
		return (int) Math.ceil(1.0 * (h - n) / (m - n));
	}
ParisWei 2013-11-23
  • 打赏
  • 举报
回复
那个我也看不懂,所以请教各位
zishinan 2013-11-23
  • 打赏
  • 举报
回复
最后一个是什么意思
ParisWei 2013-11-23
  • 打赏
  • 举报
回复
能给实现的代码不?
a825395336 2013-11-23
  • 打赏
  • 举报
回复
1.素数表 2.公倍数公约数 3.分析情况,完整天的和不完整的,情况不多,针对头尾,中间都是完整天数 4.字符串处理吧,把字符串看成一个数组从头一个一个来 5.好像是2^n那些数组成的,如果说任意组合的话(可以减法)那我暂时也想不出
lcf 2013-11-23
  • 打赏
  • 举报
回复
其实第五题就是n*3吧。。。如果是1,4,7,还是1,3,9能表示的多一些。只是咋证明呢。。数论神马的最难了
ParisWei 2013-11-23
  • 打赏
  • 举报
回复
20行处为什么还要减去m
zishinan 2013-11-23
  • 打赏
  • 举报
回复
第三题
public class FrogClimb
{
    public int getResult(int m,int n,int h)
    {
        int resualt = 0;
        if(m < 2 || m > 10)
        {
            System.out.println("2<=m<=10");
        }
        if(n < 1 || n > m)
        {
            System.out.println("1<=n<m");
        }
        if(h < 10 || h > 2000000000)
        {
            System.out.println("10<=h<=2000000000");
        }
        
        int perDay = m - n;
        while(h - perDay*resualt - m >= 0)
        {
            resualt++;
        }
        return resualt;
    }
    public static void main(String[] args)
    {
        FrogClimb frogClimb = new FrogClimb();
        System.out.println(frogClimb.getResult(4, 2, 10));
    }
}
七日断肠散 2013-11-23
  • 打赏
  • 举报
回复
引用 3 楼 zishinan 的回复:
最后一个是什么意思
已知数m,求从1到m中选取最少个数的数字,他们的和是m

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧