九度OJ 1084:整数拆分 (递归)
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2274
解决:914
- 题目描述:
- 
一个整数总可以拆分为2的幂的和,例如: 
 7=1+2+4
 7=1+2+2+2
 7=1+1+1+4
 7=1+1+1+2+2
 7=1+1+1+1+1+2
 7=1+1+1+1+1+1+1
 总共有六种不同的拆分方式。
 再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。
 用f(n)表示n的不同拆分的种数,例如f(7)=6.
 要求编写程序,读入n(不超过1000000),输出f(n)%1000000000。
- 输入:
- 
每组输入包括一个整数:N(1<=N<=1000000)。 
- 输出:
- 
对于每组数据,输出f(n)%1000000000。 
- 样例输入:
- 
7 
- 样例输出:
- 
6 
思路:
递归求解。
对于奇数2n+1,必定分解式中有1,去掉这个1,对应于与2n对应的拆分种数;
对于偶数2n,分解式中有1时,对应2n-1,没有1时对应n。
代码:
#include <stdio.h> #define N 1000000 int main(void)
{
int n, i;
int a[N+1]; a[0] = 1;
for (i=0; i<=N/2; i++)
{
a[2*i] = (a[i]+a[2*i-2])%1000000000;
a[2*i+1] = a[2*i];
} while (scanf("%d", &n) != EOF)
printf("%d\n", a[n]); return 0;
}
/**************************************************************
Problem: 1084
User: liangrx06
Language: C
Result: Accepted
Time:10 ms
Memory:4744 kb
****************************************************************/
九度OJ 1084:整数拆分 (递归)的更多相关文章
- 九度OJ 1084 整数拆分
		题目地址:http://ac.jobdu.com/problem.php?pid=1084 题目描述: 一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 ... 
- 九度OJ 1373 整数中1出现的次数(从1到n整数中1出现的次数)
		题目地址:http://ac.jobdu.com/problem.php?pid=1373 题目描述: 亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直困扰着他,特此他向JOBDU ... 
- 【九度OJ】题目1190:大整数排序 解题报告
		[九度OJ]题目1190:大整数排序 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1190 题目描述: 对N个长度最长可达 ... 
- 【九度OJ】题目1205:N阶楼梯上楼问题 解题报告
		[九度OJ]题目1205:N阶楼梯上楼问题 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1205 题目描述: N阶楼梯上楼问题:一次 ... 
- 九度oj  题目1087:约数的个数
		题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ... 
- 九度OJ,题目1089:数字反转
		题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. ... 
- 九度OJ 1500 出操队形 -- 动态规划(最长上升子序列)
		题目地址:http://ac.jobdu.com/problem.php?pid=1500 题目描述: 在读高中的时候,每天早上学校都要组织全校的师生进行跑步来锻炼身体,每当出操令吹响时,大家就开始往 ... 
- 九度OJ 1531 货币面值(网易游戏2013年校园招聘笔试题) -- 动态规划
		题目地址:http://ac.jobdu.com/problem.php?pid=1531 题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在 ... 
- 九度OJ 1371 最小的K个数 -- 堆排序
		题目地址:http://ac.jobdu.com/problem.php?pid=1371 题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4 ... 
随机推荐
- 标准C程序设计七---66
			Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ... 
- file中的一些常用方法
			1.exists();判断文件(目录)是否存在 2.mkdir();创建一级目录:mkdirs()创建多级目录 3.delete();删除文件(目录) 4.isDirectory();判断是否是一个目 ... 
- React native 横滑效果
			import { Component } from 'react'; import { StyleSheet, View, Text, TouchableOpacity, ScrollView, Di ... 
- 微信小程序 本地缓存保持登录状态之wx.setStorageSync()使用技巧
			微信小程序提供了一个如同浏览器cookie本地缓存方法,那就是今天要说的wx.setStorageSync() 注意,该方法是同步请求,还有个异步请求的方法是wx.setStorage(),参考官方文 ... 
- 牛客网 牛客练习赛11 D.求距离
			D.求距离 链接:https://www.nowcoder.com/acm/contest/59/D来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言6 ... 
- ssm框架  spring的主配置文件  spring-mvc主配置文件  web.xml配置文件(基础的配置文件)
			1.spring主配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ... 
- 358. Rearrange String k Distance Apart
			/* * 358. Rearrange String k Distance Apart * 2016-7-14 by Mingyang */ public String rearrangeString ... 
- UNIX&Linux发展图谱
			来自为知笔记(Wiz) 
- SDUTOJ 2826 小P寻宝记——好基友一起走
			#include<iostream> #include<memory.h> using namespace std; int dp[10010]; int max(int a, ... 
- class文件结构浅析(2)
			欢迎转载,转载需声明出处 ------------------ 请先看上一篇:Class类文件结构浅析 上一篇讲的都是理论.以下我们亲自实践一下. 首先编写一个简单的java类: public cla ... 
