[UVA] 11344 - The Huge One
題目連結
題意:
給一超大整數 N,和幾個int
問這幾個int能不能全部都整除N
可以 -> Wonderful
不行 -> Simple
**************************************************
我的作法:
17 % 5 = ((1%5)*10+7)%5
不需要做大數運算...
小技巧:
[字元轉數字]
字元&15
ex: '8' & 15 = 8
因為數字0到9最多使用4個bit
剛好是字元後4個bit
要看最後4個bit是什麼就是做 &1111 也就是 &15
**************************************************
程式碼:
/* 題目: UVa 11344 - The Huge One
* Language: C++
* Created on: 2016年10月14日
* Author: hanting
*/
#include <iostream>
using namespace std;
string num;
int numMod(int k)
{
int remainder = 0;
for(int i = 0; i < num.size(); i++)
{
remainder *= 10;
remainder += (num[i]&15);
remainder %= k;
}
return remainder;
}
int main()
{
int testCase;
cin >> testCase;
while(testCase--)
{
cin >> num;
int n;
cin >> n;
bool wonderful = true;
for(int i = 0; i < n; i++)
{
int k;
cin >> k;
if(numMod(k) != 0)
{
wonderful = false;
}
}
if(wonderful)
{
cout << num << " - Wonderful." << endl;
}
else
{
cout << num << " - Simple." << endl;
}
}
return 0;
}
沒有留言:
張貼留言