1、实现1~n之和,不能使用乘除法、循环、条件判断、选择相关的关键字,你会想到使用什么?
首先想到递归,后来又想到逻辑运算,还有就是也可以用“+、-”法;哈哈
int sum=0;
int FunTest(int n,int &sum)
{
n&&FunTest(n-1,sum);
return (sum+=n);
}
后来又想到了类–静态成员变量、函数–
class test
{
public:
test()
{
n++;
sum+=n;
}
static int GetSum()
{
return sum;
}
private:
static int n;
static int sum;
};
//静态成员变量必须在类外声明;
int test::n=0;
int test::sum=0;
int main()
{
test*p =new test[10];
int sum=test::GetSum();
cout<<sum<<endl;
delete[] p;
system("pause");
return 0;
}
2、实现一个Add函数,让两个数相加,但是不能使用+、-、*、/等四则运算符,也不能用++、–等等 ;
我第一个想法就是可以使用位运算符试试,结果试成功了;
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int sum=0;
int Add(int n,int m,int &sum)
{
return sum=(n|m);
}
方法其实没有那么难,但是问题有些古怪,所以有时候就会想不到……哈哈