UVA_128
模运算。
#include#include #define MAXD 1200 int a[5], g = 34943; char b[MAXD], *str = "0123456789ABCDEF"; void solve() { int i; long long int k, res; k = 0; for(i = 0; b[i]; i ++) k = (b[i] + k * 256) % g; res = (g - (k * 65536) % g) % g; for(i = 0; i < 4; i ++) { a[i] = res % 16; res /= 16; } printf("%c%c %c%c\n", str[a[3]], str[a[2]], str[a[1]], str[a[0]]); } int main() { for(;;) { gets(b); if(b[0] == '#') break; solve(); } return 0; }