zoukankan      html  css  js  c++  java
  • 农夫约翰的牛

    Problem Description
    Farmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the possible sets of numbers that sum to 7:

    1) 1+1+1+1+1+1+1
    2) 1+1+1+1+1+2
    3) 1+1+1+2+2
    4) 1+1+1+4
    5) 1+2+2+2
    6) 1+2+4

    Help FJ count all possible representations for a given integer N (1 <= N <= 1,000,000).

    Input
    A single line with a single integer, N.

    Output
    The number of ways to represent N as the indicated sum. Due to the potential huge size of this number, print only last 9 digits (in base 10 representation).

    Sample Input
    7

    Sample Output
    6

    译:

    问题描述

    农夫约翰命令他的牛寻找不同的数字集合,这些数字和一个给定的数字。奶牛只使用整数幂为2的数字。下面是可能的数字集合,它们的和是7:

    1)1 + 1 + 1 + 1 + 1 + 1 + 1

    2)1 + 1 + 1 + 1 + 1 + 2

    3)1 + 1 + 1 + 2 + 2

    4)1 + 1 + 1 + 4

    5)1 + 2 + 2 + 2

    6)1 + 2 + 4

    帮助FJ计算一个给定整数N的所有可能表示形式(1 <= N <= 1,000,000)。

    输入

    一行只有一个整数N。

    输出

    表示N的方法的个数作为表示的和。由于这个数字可能很大,所以只打印最后9位数字(以10为基数表示)。

    样例输入

    7

    样例输出

    6

    #include<stdio.h>
    int result[1000000];
    int n;
    int count = 0;
    void search(int k,int sum) {
    	for (int i = 1; i < n; i *= 2) {
    		if (i >= result[k - 1]) {		//保证比前一个数大
    			result[k] = i;
    			if (sum + i >= n) {
    				if (sum + i == n)
    					count++;
    			}
    			else
    				search(k + 1, sum + i);
    		}
    	}
    }
    int main() {
    	scanf("%d", &n);
    	search(1, 0);
    	printf("%d", count);
    	return 0;
    }
  • 相关阅读:
    四、分配swap分区
    三、fdisk分区
    二、文件系统常用命令
    一、回顾分区和文件系统
    三、文件系统属性chattr权限&系统命令sudo权限
    2、开发环境搭建
    1、基本概念
    SSH服务
    CentOS 7安装启动vsftpd服务
    01.HTML 5与HTML4的区别
  • 原文地址:https://www.cnblogs.com/F-itachi/p/9974323.html
Copyright © 2011-2022 走看看