一直以來都以一個C++新手的身份自居,所以雖然“學”了很多年,但看到下面這段程序時還是令我感到十分驚艷!
#include <iostream>
using namespace std;
int main()
{
int a;
cout <<"please input a number:\n";
cin >>a;
int c1 = a%3 ==0;
int c2 = a%5 ==0;
int c3 = a%7 ==0;
switch((c1<<2)+(c2<<1)+c3)
{
case 0: cout <<"不能被3,5,7整除.\n"; break;
case 1: cout <<"只能被7整除.\n"; break;
case 2: cout <<"只能被5整除.\n"; break;
case 3: cout <<"可以被5,7整除.\n"; break;
case 4: cout <<"只能被3整除.\n"; break;
case 5: cout <<"可以被3,7整除.\n"; break;
case 6: cout <<"可以被3,5整除.\n"; break;
case 7: cout <<"可以被3,5,7整除.\n"; break;
}
return 0;
}
驚艷的原因就是第14行用 (c1<<2)+(c2<<1)+c3 表示整除的思想。
從注冊這個帳號前我就是個C++新手,好多年了我依然是個C++新手,難道我就只能是個C++新手?
我、不、甘、心!