转载请注明出处:http://blog.csdn.net/ns_code/article/details/27964027
-
题目描述:
-
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
-
输入:
-
输入可能包含多个测试样例。
对于每个测试案例,输入为一个整数n(1<= n<=100000)。
-
输出:
-
对应每个测试案例,
输出1+2+3+…+n的值。
-
样例输入:
-
3 5
-
样例输出:
-
6 15
不想再在这种无聊的题目上浪费时间了,索性这样了,有段时间没用java了,手都生了,另外,用java构造函数思路做本题目,有不用for循环即可计算出答案的,欢迎提示,实在不想去想了!
无论怎样,还是把代码贴上吧!
- import java.util.*;
- public class Main{
- public static void main(String args[]) {
- Scanner cin = new Scanner(System.in);
- int n;
- while (cin.hasNext()) {
- n = cin.nextInt();
- Temp.Reset();
- Temp arr[] = new Temp[n];
- for(int i=0;i<n;i++)
- arr[i] = new Temp();
- System.out.println(Temp.getSum());
- }
- }
- }
- class Temp{
- private static int n = 0;
- private static int sum = 0;
- public static void Reset(){
- n = 0;
- sum = 0;
- }
- public Temp(){
- ++n;
- sum += n;
- }
- public static int getSum(){
- return sum;
- }
#include <iostream>
using namespace std;
int i,num;
unsigned long r;
int other();
int mul();
int (*func[2])(void)={other,mul};
//int (*fun[2])(void)={others,mul};
class Gauss
{
static int idx;
static int sum;
public:
Gauss()
{
idx++;
sum += idx;
}
void say(void)
{
cout<<"Count = "<<idx<<", Sum = "<<sum<<endl;
}
};
int Gauss::idx = 0;
int Gauss::sum = 0;
int main(void)
{
Gauss * p = new Gauss[10];
p->say();
delete [] p;
i=6;
r=0;
mul();
printf(" r = %d \n",r);
return 0;
}
int other()
{
return 0;
}
int mul()
{
i--;
int tmp=i;
func[(int)(i!=0)]();
r+=tmp;
printf(" r = %d i=%d\n",r,i);
return 0;
}