杭电acm1028.整数拆分
来源:互联网 发布:泛微协同软件 编辑:程序博客网 时间:2024/06/07 00:08
题目大意:整数n可以用1,2 ,3 ,4.....,n相加表示;原题:点击打开链接
题目解析:相当于把n个无区别的球放到n个无标志的盒子,盒子允许空,也允许放多于一个球
错误分析:1.j这里j就是(前面i个表达式累乘的表达式)里第j个变量,因此每次前i个表达式累乘求完后都把中间变量a2赋值给a1,因此要把for循环放在i的for循环里;
2.a1数组的大小要大于120;
#include<stdio.h>#include<iostream>using namespace std;int a1[121],a2[121];int main(){ int i,j,k,n; while(scanf("%d",&n)!=EOF) {for(i=0;i<=n;i++) { a1[i]=1; a2[i]=0; } for(i=2;i<=n;++i) {//求第i个表达式(1+x^(k+i)+x^(k+2i)+x^(k+3i)+...) for(j=0;j<=n;++j)//j 从0到n遍历,这里j就是(前面i个表达式累乘的表达式)里第j个变量, for(k=0;k+j<=n;k+=i)// k表示的是第j个指数,所以k每次增i(因为第i个表达式的增量是i)。 { a2[j+k]+=a1[j]; } // 每次前i个表达式累乘求完后都把中间变量a2赋值给a1 for(j=0;j<=n;++j) { a1[j]=a2[j]; a2[j]=0; } } printf("%d\n",a1[n]); } return 0;}
- 杭电acm1028.整数拆分
- 杭电acm1028利用母函数求解数字拆分问题
- 杭电acm1028
- 杭电ACM1028(母函数)
- 杭电1028——整数拆分(递归实现)
- 整数拆分
- 整数拆分
- 整数拆分
- 整数拆分
- 整数拆分
- 整数拆分
- 整数拆分
- 整数拆分
- 拆分整数
- 整数拆分
- 整数拆分
- 整数拆分
- 整数拆分
- Caused by: android.os.NetworkOnMainThreadException 异常
- hibernate配置文件错误
- 积分直方图加速HOG特征计算
- Objective-C的@property 详解(ios,iphone,xcode,retain,release,assign,copy)
- rqnoj-238
- 杭电acm1028.整数拆分
- 求多边形或轮廓的凸包(Hull)
- windows之启动过程(一)
- hdu 2072 单词数
- uva 670The dog task
- 第八周项目五----string类的扩充
- HOG参数简介及Hog特征维数的计算
- 2013省赛集训5 - Triangle
- EJB项目:角色授权(一)