コード例 #1
0
ファイル: problem061.c プロジェクト: laysent/onlineJudge
int main(int argc, char *argv[])
{
  int i = 45;
  for (i = 45; i <= 140; i++) {
    checkList[0] = i;
    triangleUp = upper(triangle(i));
    search(lower(triangle(i)));

    if (found == 1) {
      /* 输出递归信息 */
      printf("(3): %d -> %d\n", triangle(i), lower(triangle(i)));
      break;
    }

    checkList[0] = 0;
  }
  if (found == 1)
    /* 输出结果 */
    printf("%d(%d)+%d(%d)+%d(%d)+%d(%d)+%d(%d)+%d(%d)=%d\n", 
	   triangle(checkList[0]),checkList[0], square(checkList[1]),checkList[1],
	   pentagonal(checkList[2]),checkList[2], hexagonal(checkList[3]),checkList[3], 
	   heptagonal(checkList[4]),checkList[4], octagonal(checkList[5]), checkList[5],
	   triangle(checkList[0])+square(checkList[1])
	   +pentagonal(checkList[2])+hexagonal(checkList[3])
	   +heptagonal(checkList[4])+octagonal(checkList[5])
	   );
  
  return 0;
}
コード例 #2
0
ファイル: prob44.c プロジェクト: Andken/ProjectEuler
inline int isPentagonal(const number x)
{
    //	if(ceil((1+sqrt(1-24*x))/6) == floor((1+sqrt(1-24*x))/6))
    //		{
    //			return 1;
    //		}
    //	else
    //		{
    //			return 0;
    //		}
    int i;
    for(i=1; pentagonal(i) < x; ++i)
        ;

    return pentagonal(i) == x;
}
コード例 #3
0
String AudioChannelSet::getDescription() const
{
    if (isDiscreteLayout())            return String ("Discrete #") + String (size());
    if (*this == disabled())           return "Disabled";
    if (*this == mono())               return "Mono";
    if (*this == stereo())             return "Stereo";
    if (*this == createLCR())          return "LCR";
    if (*this == createLRS())          return "LRS";
    if (*this == createLCRS())         return "LCRS";
    if (*this == quadraphonic())       return "Quadraphonic";
    if (*this == pentagonal())         return "Pentagonal";
    if (*this == hexagonal())          return "Hexagonal";
    if (*this == octagonal())          return "Octagonal";
    if (*this == ambisonic())          return "Ambisonic";
    if (*this == create5point0())      return "5.1 Surround";
    if (*this == create5point1())      return "5.1 Surround (+Lfe)";
    if (*this == create6point0())      return "6.1 Surround";
    if (*this == create6point0Music()) return "6.1 (Music) Surround";
    if (*this == create6point1())      return "6.1 Surround (+Lfe)";
    if (*this == create7point0())      return "7.1 Surround (Rear)";
    if (*this == create7point1())      return "7.1 Surround (Rear +Lfe)";
    if (*this == create7point1AC3())   return "7.1 AC3 Surround (Rear + Lfe)";
    if (*this == createFront7point0()) return "7.1 Surround (Front)";
    if (*this == createFront7point1()) return "7.1 Surround (Front +Lfe)";

    return "Unknown";
}
コード例 #4
0
ファイル: problem44.c プロジェクト: chengli1986/dswp
/* this program may take a few seconds */
int main(void)
{
  unsigned i, j;
  unsigned min = UINT_MAX;
  for (i = 1; i < N; i++) {
    for (j = i; j < N; j++) {
      unsigned k = pentagonal(i);
      unsigned l = pentagonal(j);
      if (is_pentagonal(k+l) && is_pentagonal(l-k)) {
        if (l-k < min) {
          min = l-k;
        }
      }
    }
  }
  printf("%u\n", min);

  return 0;
}
コード例 #5
0
ファイル: prob44.c プロジェクト: Andken/ProjectEuler
int main()
{
    int x = 1;
    int y = 1;

    //	printf("pentagonal(20000) = %llu\n", pentagonal(20000));
    //	return 0;

    for(x=1; ; ++x)
    {
        for(y=1; y<=x; ++y)
        {
            if(meetsCriteria(pentagonal(x), pentagonal(y)))
            {
                printf("pentagonal(x)=%lld, pentagonal(y)=%lld, diff(x,y)=%lld\n",
                       pentagonal(x),
                       pentagonal(y),
                       diff(pentagonal(x), pentagonal(y)));
                return 0;
            }
            //					if(x % 100 == 0 || y % 100 == 0)
            //						{
            //							printf("(x,y) : (%d,%d)\n", x, y);
//						}
        }
    }

    return 0;
}
コード例 #6
0
ファイル: 45.c プロジェクト: khamilowicz/Project_Euler
int main(int argc, const char *argv[])
{
setlocale(LC_ALL, "");

  int cur = 1533776805;
  /*int cur = 40755;*/
  printf("\ntri: %i, hex: %i , pen: %i ", triangle(cur), hexagonal(cur), pentagonal(cur));	
	printf("\n");
	/*cur = 1;*/
  /*while (1){*/
    /*cur = cur + 1;*/
    /*if (triangle(cur) == 1 && pentagonal(cur) == 1 && hexagonal(cur) == 1){*/
						/*break;*/
    /*}*/
		/*if(cur%1000 == 0)*/
    /*printf("%'i \r", cur);	*/
  /*}*/
  /*printf("\nanswer: %i ", cur);	*/
  /*printf("\ntri: %i, hex: %i , pen: %i ", triangle(cur), hexagonal(cur), pentagonal(cur));	*/
  return 0;
}
コード例 #7
0
ファイル: problem45_old.c プロジェクト: vhasus/project-euler
int main(int argc, char *argv[]){
  unsigned long ti=1, pi=1, hi=1;
  unsigned long tn, pn, hn;
  unsigned long found = 0;
  tn=triangular(ti);
  pn=pentagonal(pi);
  hn=hexagonal(hi);
  do{
    while(pn < hn) pi++;
    if(pi > num_pn) { pi = num_pn; find_all_upto(pn[num_pn]*3); continue;}
    if(hn[hi] < pn[pi]) { hi++; printf("."); continue;}
    ti = pi;
    while(tn[ti] < pn[pi]) ti++;
    if(ti > num_tn) { ti = num_tn; find_all_upto(tn[num_tn]*3); continue;}
    if(pn[pi] < tn[ti]) { pi++; printf(","); continue;}
    if(pn[pi] == hn[hi] && hn[hi] == tn[ti]) {
      found++;
      hi++; printf("\n%lu %lu %lu %lu\n", tn[ti], ti, pi, hi);
    }
  } while(found<2)
  return 0;
}
コード例 #8
0
ファイル: 045.cpp プロジェクト: deniscostadsc/playground
int main() {
    bool got_pentagonal = false, got_hexagonal = false;
    long tn , pn = 0, hn = 0, t = 285 + 1, p = 165, h = 143;

    while (!got_pentagonal && !got_hexagonal) {
        tn = triangle(t++);

        while (pn < tn) pn = pentagonal(p++);

        if (pn == tn) got_pentagonal = true;

        while (got_pentagonal && hn < pn) hn = hexagonal(h++);

        if (hn == pn) {
            got_hexagonal = true;
        } else {
            got_pentagonal = got_hexagonal = false;
        }
    }

    std::cout << tn << std::endl;

    return 0;
}
コード例 #9
0
ファイル: main.c プロジェクト: ykst/euler
int main(int argc, char **argv)
{
    int n_in = 0;
    int x_in = 0;

    for (int c; (c = getopt(argc, argv, "n:x:")) != -1;) {
        switch(c) {
            case 'n':
                n_in = atoi(optarg);
                break;
            case 'x':
                x_in = atoi(optarg);
                break;
        }
    }

    uint64_t result = 0;
    uint32_t pents[1000000] = {};
    vector(int) *vpents = vector_new(int, 100);

    int i, j, n = 0, m = 0;
    for(i = 1; ; i++) {
        n = pentagonal(i);
        if(n > 32000000) break;
        btable_set(pents, n);
        vector_pushback(vpents, n);
        m = n;
    }

    int cur, tgt, sum, diff;
    uint32_t d = 0xFFFFFFFF;
    for(i = 1; i < vpents->idx - 1; i++) {
        cur = vpents->buf[i];

        if(cur - vpents->buf[i - 1] > d) {
            ICHECK;
            break;
        }

        for(j = 0 ;j < i; j++) {

            tgt = vpents->buf[j];
            sum = cur + tgt;
            diff = cur - tgt;

            //printf("%d %d %d %d\n", tgt, cur, sum, diff);
            if(sum <= n && 
               btable_get(pents, sum) && 
               btable_get(pents, diff)) {

                printf("%d %d %d %d\n", tgt, cur, sum, diff);

                d = min(d, diff);
            }
        }
    }

    vector_delete(vpents);

    DUMPL(result = d); 

    return 0;
}
コード例 #10
0
ファイル: main.c プロジェクト: fangzhou070101/Project_Euler
bool cycfig(int stage, int minbound)
{
    int testnum,testnum1;
    int testcase;
    switch(stage){
        case 1:
            for(testnum=10;testnum<100;testnum++){
                for(testnum1=testnum;testnum1<100;testnum1++){
                    if(triangle(testnum*100+testnum1)){
                        anscase[0]=3;
                        casefound[3]=true;
                        ans[0]=testnum;
                        ans[1]=testnum1;
                        if(cycfig(2,testnum))
                            return true;
                        casefound[3]=false;
                    }
                    if(square(testnum*100+testnum1)){
                        anscase[0]=4;
                        casefound[4]=true;
                        ans[0]=testnum;
                        ans[1]=testnum1;
                        if(cycfig(2,testnum))
                            return true;
                        casefound[4]=false;
                    }
                    if(pentagonal(testnum*100+testnum1)){
                        anscase[0]=5;
                        casefound[5]=true;
                        ans[0]=testnum;
                        ans[1]=testnum1;
                        if(cycfig(2,testnum))
                            return true;
                        casefound[5]=false;
                    }
                    if(hexagonal(testnum*100+testnum1)){
                        anscase[0]=6;
                        casefound[6]=true;
                        ans[0]=testnum;
                        ans[1]=testnum1;
                        if(cycfig(2,testnum))
                            return true;
                        casefound[6]=false;
                    }
                    if(heptagonal(testnum*100+testnum1)){
                        anscase[0]=7;
                        casefound[7]=true;
                        ans[0]=testnum;
                        ans[1]=testnum1;
                        if(cycfig(2,testnum))
                            return true;
                        casefound[7]=false;
                    }
                    if(octagonal(testnum*100+testnum1)){
                        anscase[0]=8;
                        casefound[8]=true;
                        ans[0]=testnum;
                        ans[1]=testnum1;
                        if(cycfig(2,testnum))
                            return true;
                        casefound[8]=false;
                    }
                }
            }
            break;
        case 2:
        case 3:
        case 4:
        case 5:
            for(testnum=minbound;testnum<100;testnum++){
                ans[stage]=testnum;
                for(testcase=3;testcase<9;testcase++){
                    if(casefound[testcase]==false){
                        switch(testcase){
                            case 3:
                                if(triangle(ans[stage-1]*100+ans[stage])){
                                    anscase[stage-1]=3;
                                    casefound[3]=true;
                                    if(cycfig(stage+1,minbound))
                                        return true;
                                    casefound[3]=false;
                                }
                                break;
                            case 4:
                                if(square(ans[stage-1]*100+ans[stage])){
                                    anscase[stage-1]=4;
                                    casefound[4]=true;
                                    if(cycfig(stage+1,minbound))
                                        return true;
                                    casefound[4]=false;
                                }
                                break;
                            case 5:
                                if(pentagonal(ans[stage-1]*100+ans[stage])){
                                    anscase[stage-1]=5;
                                    casefound[5]=true;
                                    if(cycfig(stage+1,minbound))
                                        return true;
                                    casefound[5]=false;
                                }
                                break;
                            case 6:
                                if(hexagonal(ans[stage-1]*100+ans[stage])){
                                    anscase[stage-1]=6;
                                    casefound[6]=true;
                                    if(cycfig(stage+1,minbound))
                                        return true;
                                    casefound[6]=false;
                                }
                                break;
                            case 7:
                                if(heptagonal(ans[stage-1]*100+ans[stage])){
                                    anscase[stage-1]=7;
                                    casefound[7]=true;
                                    if(cycfig(stage+1,minbound))
                                        return true;
                                    casefound[7]=false;
                                }
                                break;
                            case 8:
                                if(octagonal(ans[stage-1]*100+ans[stage])){
                                    anscase[stage-1]=8;
                                    casefound[8]=true;
                                    if(cycfig(stage+1,minbound))
                                        return true;
                                    casefound[8]=false;
                                }
                                break;
                            default: break;
                        }
                    }
                }
            }
            break;
        case 6:
            for(testcase=3;testcase<9;testcase++){
                if(!casefound[testcase]){
                    anscase[5]=testcase;
                    break;
                }
            }
            switch(testcase){
                case 3:
                    if(triangle(ans[5]*100+ans[0]))
                        return true;
                    break;
                case 4:
                    if(square(ans[5]*100+ans[0]))
                        return true;
                    break;
                case 5:
                    if(pentagonal(ans[5]*100+ans[0]))
                        return true;
                    break;
                case 6:
                    if(hexagonal(ans[5]*100+ans[0]))
                        return true;
                    break;
                case 7:
                    if(heptagonal(ans[5]*100+ans[0]))
                        return true;
                    break;
                case 8:
                    if(octagonal(ans[5]*100+ans[0]))
                        return true;
                    break;
                default: break;
            }
            break;
        default: return false;
    }
    return false;
}