zoukankan      html  css  js  c++  java
  • Project Euler 34 Digit factorials


    题意:判断一个数 N 的各个位数阶乘之和是否为其本身,找出所有符合要求的数然后求和

    思路:此题思路跟 30 题相同,找到枚举上界 10 ^ n <= 9! × n ,符合要求的 n < 6 ,因此选择 9! × 6 作为上界


    /*************************************************************************
        > File Name: euler034.c
        > Author:    WArobot 
        > Blog:      http://www.cnblogs.com/WArobot/ 
        > Created Time: 2017年06月23日 星期五 13时52分58秒
     ************************************************************************/
    
    #include <stdio.h>
    #include <inttypes.h>
    
    #define MAX_N 2177280
    int32_t fac[10];
    
    void init_fac(){
    	fac[0] = 1;	
    	for(int32_t i = 1 ; i < 10 ; i++)	fac[i] = fac[i-1] * i;
    }
    
    bool isNumber(int32_t n){
    	int32_t sum = 0 , x = n;
    	while(x){
    		sum += fac[ x % 10 ];
    		x /= 10;
    	}
    	return sum == n;
    }
    
    int32_t main(){
    	int32_t sum = 0;
    	init_fac();
    	for(int32_t i = 3 ; i <= MAX_N ; i++){
    		if( isNumber(i) )	sum += i;
    	}
    	printf("%d
    ",sum);
    	return 0;
    }
  • 相关阅读:
    内存溢出
    接手新业务
    pjb fabu
    中文手册
    人背的时候,做啥都失败
    帮助开发人员学习
    python中的__dict__,__getattr__,__setattr__
    NetCore在Docker中发布及运行
    ELK基础配置
    IdentityServer4 手动验签及日志记录
  • 原文地址:https://www.cnblogs.com/WArobot/p/7069640.html
Copyright © 2011-2022 走看看