一直以来都以一个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++新手?
我、不、甘、心!