C/C++の宿題片付けます 127代目
■ このスレッドは過去ログ倉庫に格納されています
0326325 修正
2009/06/14(日) 04:57:48#include <time.h>
#define power(i) (i-1?(i-2?(i-3?(i-4?(i-5?(i-6?(i-7?(i-8?(i-9?0:387420489):16777216):823543):46656):3125):256):27):4):1)
int cmp(const char *a, const char *b){
return (*a<*b)?-1:(*a>*b);
}
int main() {
struct { char num1, num2, num3, num4, num5, num6, num7, num8, num9, num10, num11; } sumnum;
unsigned int a, b, c, d, e, f, g, h, j, k;
unsigned int sum, sumsort, p; /* 0xFFFF,FFFF = 4,294,967,295 */
clock_t s = clock();
sumnum.num11 = '\0';
for(a = 0; a <= 4; a++) { // 1
for(b = a; b <= 9; b++) { // 2
for(c = b; c <= 9; c++) { // 3
for(d = c; d <= 9; d++) { // 4
for(e = d; e <= 9; e++) { // 5
for(f = e; f <= 9; f++) { // 6
for(g = f; g <= 9; g++) { // 7
for(h = g; h <= 9; h++) { // 8
for(j = h; j <= 9; j++) { // 9
for(k = j; k <= 9; k++) { // 10
sum = power(k) + power(j) + power(h) + power(g) + power(f) + power(e) + power(d) + power(c) + power(b) + power(a);
p = k+j*10+h*100+g*1000+f*10000+e*100000+d*1000000+c*10000000+b*100000000+a*1000000000;
sprintf((char*)&sumnum, "%010u", sum);
qsort(&sumnum, 10, sizeof(char), (void*)cmp);
sscanf((char*)&sumnum, "%u", &sumsort);
if( sumsort == p) printf("%u %d[msec]\n", sum, clock() - s);
}}}}}}}}}}
}
■ このスレッドは過去ログ倉庫に格納されています