求助 1加到N

时间:2022-04-24 09:50:52
1 加到N不能用乘除 也不能用for if else while 以及A ? B: C;

求解 任何语言

9 个解决方案

#1


不能用乘除法,那么只能用加法,减法用不到,
不能用循环,那么只能手工加。。。
能用移位符么

#2


还有个switch可以用。

switch (n)
{
case 1:return 1;
default:return fuck(n-1)+n;
}

#4


declare
v_sum number :=0;
v_secondNum number:=&输入数;
v_i number:=0;
begin
 loop 
     
      exit when v_i=v_secondNum; 
  v_i:=v_i+1;
  v_sum:=v_sum+v_i;

 end loop;
 dbms_output.put_line(v_sum);
end;

这个应该满足你的要求了噻 呵呵 pl/sql (oracle的)

#5


递归,

#6


如果 N = 10,那就写成:

int a = 1+2+3+4+5+6+7+8+9+10;

反正一个一个加应该能满足你的条件了。

#7


如果 N = 100 的话

var N = 100;
var n = N + 1;
var sum = ((n << 6) + (n << 5) + (n << 2)) >> 1;

#8


引用 8 楼 bao110908 的回复:
如果 N = 100 的话

var N = 100;
var n = N + 1;
var sum = ((n << 6) + (n << 5) + (n << 2)) >> 1;

请问这个6 5 2 是怎么来的呢。
我试了一下1000不对哦

#1


不能用乘除法,那么只能用加法,减法用不到,
不能用循环,那么只能手工加。。。
能用移位符么

#2


还有个switch可以用。

switch (n)
{
case 1:return 1;
default:return fuck(n-1)+n;
}

#3


#4


declare
v_sum number :=0;
v_secondNum number:=&输入数;
v_i number:=0;
begin
 loop 
     
      exit when v_i=v_secondNum; 
  v_i:=v_i+1;
  v_sum:=v_sum+v_i;

 end loop;
 dbms_output.put_line(v_sum);
end;

这个应该满足你的要求了噻 呵呵 pl/sql (oracle的)

#5


递归,

#6


如果 N = 10,那就写成:

int a = 1+2+3+4+5+6+7+8+9+10;

反正一个一个加应该能满足你的条件了。

#7


如果 N = 100 的话

var N = 100;
var n = N + 1;
var sum = ((n << 6) + (n << 5) + (n << 2)) >> 1;

#8


引用 8 楼 bao110908 的回复:
如果 N = 100 的话

var N = 100;
var n = N + 1;
var sum = ((n << 6) + (n << 5) + (n << 2)) >> 1;

请问这个6 5 2 是怎么来的呢。
我试了一下1000不对哦