public class T { public static void main(String[] args) { System.out.println("125250"); } }
(n*(n+1)) >>> 1这个好
(n*(n+1)) >>> 1有深度 ,呵呵
int sum = 0; for(int i = 1; i <= 500; i++) { result += i; } System.out.println("1到500的和是:" + sum);
public class Sum500 { public static void main(String[] args)throws IOException{ int sum=0; for(int i=1;i<=500;i++){ sum+=i; } System.out.print("1+2+3+...+500="); System.out.println(sum); } }
public class RopeDemo { public static void main(String[] args){ int sum=0; for(int i=1;i<=500;i++){ sum+=i; } System.out.print("1+2+3+...+500="); System.out.println(sum); } }
楼主要出个题考我们?难道你的用意是:加起来的值越界了,用个BigDecimal?
static int result = 0; public static int recursionMU(int k){ if(k == 0){ return result; }else{ result = k +recursionMU(k-1); } return result; } 参数是250,试了一下结果是31375.不知道对不对呢?
public class RopeDemo { public static void main(String[] args){ int sum=0; for(int i=1;i<=500;i++){ sum+=i; } System.out.print("1+2+3+...+500="); System.out.println(sum); } }
public class Test1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int sum=0; for(int i=0;i<=500;i++){ sum+=i; } System.out.println("1到500的总和是:"+sum); }}
这个好! int n = 500; int x = ( n * ( n + 1)) >>> 1;
>>> 比较不错。。
我只习惯用for.....没想到移位更帅...
请教各位下 ">>>" 这是什么意思啊?
弱弱的问句 这个是什么意思的 ?(n*(n+1)) >>> 1;
我晕,看了好几楼,程序写多了 最基本的数学都忘了??res=n*(n+1)/2
这个用位移和for都可以的,有什么问题?
楼主是不是考这个? 防止溢出public class Test { public static void main(String[] args) { System.out.println(getSum(50)); }
1到500的和太没难度了。。我下面这个算法是1到100000的和/*1+2+3+..+100000*/ public class Add10000 { public static void main(String[] args){ Add10000 zhengshan = new Add10000(); String sum = "0";
我知道了,楼主想散分!我接!
int result = 0;
for(int i=1;i<=500;i++){
result +=i;
}
System.out.println("1到500的和是:"+result);
这个 数学好一点的人 就 得意了
public int sum(int n) { return n * (n +1) * 0.5
}
(n*(n+1)) >>> 1;
sum+=i;
}
这个倒是没有楼上的方法简介 呵呵
public static void main(String[] args) {
System.out.println("125250");
}
}
for(int i = 1; i <= 500; i++) {
result += i;
}
System.out.println("1到500的和是:" + sum);
public static void main(String[] args)throws IOException{
int sum=0;
for(int i=1;i<=500;i++){
sum+=i;
}
System.out.print("1+2+3+...+500=");
System.out.println(sum);
}
}
public static void main(String[] args){
int sum=0;
for(int i=1;i<=500;i++){
sum+=i;
}
System.out.print("1+2+3+...+500=");
System.out.println(sum);
}
}
public static int recursionMU(int k){
if(k == 0){
return result;
}else{
result = k +recursionMU(k-1);
}
return result;
}
参数是250,试了一下结果是31375.不知道对不对呢?
public static void main(String[] args){
int sum=0;
for(int i=1;i<=500;i++){
sum+=i;
}
System.out.print("1+2+3+...+500=");
System.out.println(sum);
}
}
public class Test1 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
for(int i=0;i<=500;i++){
sum+=i;
}
System.out.println("1到500的总和是:"+sum);
}}
这个好!
int n = 500;
int x = ( n * ( n + 1)) >>> 1;
防止溢出public class Test { public static void main(String[] args) {
System.out.println(getSum(50));
}
public static int getSum(int n){
if((n & 1) == n)
return ((n + 1) >> 1) * n;
return (n >> 1) * (n + 1);
}}
Sn=n(a1+an)/2 或Sn=a1*n+n(n-1)d/2
这个简单 不用循环
public class Add10000 {
public static void main(String[] args){
Add10000 zhengshan = new Add10000();
String sum = "0";
for(int i=1 ; i<=1000000 ; i++){
sum = zhengshan.add(sum, i+"");
}
//正确的计算结果
System.out.println("1+2+3+...+100000=" + sum);
//错误的计算结果
int s = 0;
for(int i=0 ; i<=1000000 ; i++){
s += i;
}
System.out.println("1+2+3+...+100000=" + s);
}
private String add(String str1, String str2){
StringBuilder strAddStr = new StringBuilder();//str1,str2相加的结果
char ch1, ch2;
int ch1AddCh2 = 0; //零时的2个字符相加的和
int upValue = 0; //进位
int i = str1.length()-1;
int j = str2.length()-1;
while(i>=0 && j>=0){
ch1 = str1.charAt(i);
ch2 = str2.charAt(j);
ch1AddCh2 = Integer.parseInt(ch1+"") + Integer.parseInt(ch2+"") + upValue;
if(ch1AddCh2 >= 10){
upValue = ch1AddCh2/10;
ch1AddCh2 = ch1AddCh2%10;
}else{
upValue = 0;
}
strAddStr = strAddStr.append(ch1AddCh2);
i--;
j--;
}
String strLast = "0";
if(i >= 0){
strLast = str1.substring(0, i+1);
}
if(j >= 0){
strLast = str2.substring(0, j+1);
}
strLast = Integer.parseInt(strLast) + upValue + "";
if(!"0".equals(strLast)){
strAddStr.append(new StringBuilder(strLast).reverse());
}
return strAddStr.reverse().toString();
}
}
public static void main(String[] args){
System.out.println(125250);
}
}
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
for(int i=0;i<=500;i++){
sum+=i;
}
System.out.println("1到500的总和是:"+sum);
}}