挑战失败是怎么回事啊?运行都正常

JiaoPh12138 2014-08-07 01:42:24
题目详情
高斯在上小学时发明了等差数列求和公式:1+2+..+100=5050。现在问题在于给你一个正整数n,问你他可以表示为多少种连续正整数之和?(自身也算)。
输入格式:
多组数据,每组数据一行,一个正整数n。 0<n<2000000000
输出格式:
每组数据一行,包含一个正整数,表示结果。


答题说明
输入样例
5
120
输出样例:
2
4
解释:
5=2+3=5
120=1+2+...+15=22+23+24+25+26=39+40+41=120
import java.util.Scanner;
public class TestTwo {
public static void main(String args[]){
Scanner in=new Scanner(System.in);
while(true){
int a,b;
a=in.nextInt();
if(a%2==0){
b=a/2;
}else{
b=(a+1)/2;
}
int y=1;
for(int i=1;i<b;i++){
int x=0;
for(int j=i;x<a;j++){
x=x+j;
}
if(x==a){
y=y+1;
}
}
System.out.println(y);
}
}
}

求指教
...全文
151 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mandmLee 2014-08-07
  • 打赏
  • 举报
回复
如果你是在OJ上做题的话,类名要是Main 而且多组输入时也要注意一下
import java.util.Scanner;
public class Main{
     public static void main(String args[]){
         Scanner in=new Scanner(System.in);        
         while(in.hasNext()){     
         int a,b; 
         a=in.nextInt();     
         if(a%2==0){
             b=a/2;
         }else{
             b=(a+1)/2;
         }
         int y=1;     
         for(int i=1;i<b;i++){     
             int x=0;
             for(int j=i;x<a;j++){           
                x=x+j;
             }      
             if(x==a){
                y=y+1; 
             }
         }
         System.out.println(y);         
     }
    }
}
止殇之战 2014-08-07
  • 打赏
  • 举报
回复
这样不知道对不对啊

Scanner in = new Scanner(System.in);
		while (true) {
			int a, b;
			a = in.nextInt();
			// 奇偶判断
			if (a % 2 == 0) {
				b = a / 2;
			} else {
				b = (a + 1) / 2;
			}
			int y = 1;
			for (int i = 1; i <= b; i++) {
				String s1 = "";
				int tempSum = 0;
				for (int j = i; j <= b; j++) {
					s1 += j + "+";
					tempSum += j;
					if (tempSum == a) {
						System.out.println(a + " = " + s1.substring(0, s1.length()-1));
						y++;
						break;
					}
				}
			}
			System.out.println(y);
		}

62,614

社区成员

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

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