#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
using namespace std;
unsigned long getpow(int y) {
unsigned long tot=1;
for(;y>0;y--) {
tot*=10;
}
return tot;
}
int digit(int y) {
int c=0;
do {
y/=10;
c++;
}while(y>0);
return c;
}
bool ispandigit(int dizi[]) {
for(int i=0;i<9;i++) {
for(int k=0;k<9;k++) {
if(dizi[i]==dizi[k] && i!=k) {
return 0;
}
}
}
return 1;
}
void make()
{
int dizi[15],seq[9],result;
for(int i=1;i<9999;i++) {
int counter=0,k=0;
do {
if(counter >=9) {
break;
}
for(int c=1;c<8;c++) {
int m=c*i;
if(counter >=9) {
break;
}
counter+=digit(c*i);
int p=counter-1;
do {
dizi[p]=m%10;
if(dizi[p]==0) {
counter = 15;
break;
}
m/=10;
p--;
}while(m>0);
}
}while(counter<=9);
if(counter==9 && ispandigit(dizi)==1) {
memcpy(seq, dizi, sizeof dizi[0] * 9);
}
}
cout << "Project Euler - Problem 38(Pandigital multiples)\n";
cout << "Result :" ;
for(int i=0;i<9;i++) {
cout << seq[i];
}
cout << " efekanpulatli.blogspot.com" << endl;
}
int main()
{
clock_t tStart = clock();
make();
printf("Time taken: %.2fs\n", (double)(clock() - tStart)/CLOCKS_PER_SEC);
system("pause");
return 0;
}

Hiç yorum yok:
Yorum Gönder