2011年7月22日

乘积最大

摘要: 乘积最大问题描述:将一个正整数n分为若干个自然数的和,这些自然数可以相同,(n>1)。你的任务是求整数n的所有这样的和项表示中加数之积的最大值A。但通常由于数很大,直接表示它会有一些困难,为方便起见,我们将A用整数标准分解的方式表示,即A= ,其中诸 是素数,而指数 。于是将A表示成素因数、指数的序列形式 … 输入:输入文件有若干行,每行有一个整数n,1≤n≤50000。输出:对输入中的每个整数n,用一行输出对应的和项表示中加数之积最大值A的标准分解中素因数、指数的序列形式。输入样例:42000输出样例:2 22 1 3 666#include<stdio.h>#includ 阅读全文

posted @ 2011-07-22 21:56 kuangbin 阅读(367) 评论(0) 推荐(0) 编辑

盒子放球

摘要: 盒子放球问题描述:k个相同的球放入n个不同的盒子。你的任务是计算有多少种不同的放法。输入:输入文件中有若干行。每一行上有两个正整数n和k是一组测试数据,(n³1,k³0)。输入直到文件结束。输出:对输入文件中的每组测试数据,在输出文件输出k个球放入n个不同的盒子放法数。输入样例:3 41 4输出样例151#include<iostream>#include<stdio.h>using namespace std;int com(int n,int r){ int i,j,s=1; if(n-r<r)r=n-r; for(i=0,j=1;i< 阅读全文

posted @ 2011-07-22 21:55 kuangbin 阅读(358) 评论(0) 推荐(0) 编辑

升降交替数列

摘要: 升降交替数列问题描述有一种长度为n 的特殊数列,具有如下特点:(1)第一项为1;(2)每一项为1、2或3;(3)数列中的项升降交替。例如,长度为3 的特殊数列只有3条:121,132,131。你的任务是计算长度为n 的特殊数列的条数 。输入:输入文件有若干行,每行上有一个整数n,表示特殊数列长度,1≤n≤45。输出:对输入文件中的每个整数n,输出长度为n的特殊数列的条数 。输入样例:37输出样例:321#include<stdio.h>#include<iostream>using namespace std;int f[46];int vext(){ f[1]=1;f 阅读全文

posted @ 2011-07-22 21:54 kuangbin 阅读(459) 评论(0) 推荐(0) 编辑

数字和

摘要: 数字和问题描述设n是自然数。 是十进制中至多有n个数字的自然数的集合。对于整数k,用 表示 中那些数字之和小于k的元素的集合。有用| |表示 中元素个数。你的任务是对于整数n、k,判断 是否等于2 。输入:输入文件的第一行是一个整数T,1≤T≤20。接下来有T行,每行上有两个整数n,k,之间用一个空格隔开,1≤n, k≤10000。输出:对输入文件中的每对测试数据n,k,输出你的判断结果。如果| |=2| |,那么输出“YES!”,否则输出“NO!”。输入样例:82 36921 95输出样例:NO!YES!#include<stdio.h>#include<iostream& 阅读全文

posted @ 2011-07-22 21:52 kuangbin 阅读(385) 评论(0) 推荐(0) 编辑

无连续整数的子集数问题

摘要: 问题描述:集合{1、2、3,…,n}无连续整数的子集个数。输入:输入文件中有若干行。每一行上有一个正整数n一组测试数据,(1<£n<45)。输入直到文件结束。输出:对输入文件中的每组测试数据n,在输出文件输出无连续整数的所有子集个数。输入样例:348输出样例5855打表实现 阅读全文

posted @ 2011-07-22 21:51 kuangbin 阅读(557) 评论(0) 推荐(0) 编辑

无相邻1问题

摘要: 无相邻1问题问题描述:用1、2、3可构作n位数,计算其中没有相邻的1出现的个数。输入:输入文件中有若干行。每一行上有一个正整数n作为一个测试数据,(1<=n<=100)。输入直到文件结束。输出:对输入文件中的每个测试数据,在输出文件输出没有相邻的1出现的n位数的个数。输入样例:341输出样例22603分析:设 f[n]为符合条件的n位数的个数,则 f[n]=2f[n-1]+2f[n-2];#include<stdio.h>#include<iostream>#define MAXN 100using namespace std;char a[100][100 阅读全文

posted @ 2011-07-22 21:43 kuangbin 阅读(527) 评论(0) 推荐(0) 编辑

ACM POJ 2245Lotto解题报告

摘要: http://poj.org/problem?id=2245Lotto在玩德国游戏Lotto时,要从集合{1,2,……,49}中取出六个数。一个非常流行的玩法(尽管这种玩法并不能增加你赢的机会)是从这49个数字中取出k个数字(6<k)组成子集S。然后玩游戏的时候仅从S中取出数字。例如,当k=8,S=1,2,3,5,8,13,21,34时,有28种可能的游戏:[1,2,3,5,8,13],[1,2,3,5,8,21],[1,2,3,5,8,34],[1,2,3,5,13,21],……,[3,5,8,13,21,34]。编一个程序,读入k的值和集合S,打印仅从S中取数的所有可能游戏。输入输入 阅读全文

posted @ 2011-07-22 21:31 kuangbin 阅读(952) 评论(0) 推荐(0) 编辑

高精度加法的C++实现

摘要: 精度计算——加法语法:add(char a[],char b[],char s[]);参数:a[]:被乘数,用字符串表示,位数不限b[]:乘数,用字符串表示,位数不限t[]:结果,用字符串表示返回值:null注意: 空间复杂度为 o(n^2)需要 string.h源程序: void add(char a[],char b[],char back[]){int i,j,k,up,x,y,z,l;char *c;if (strlen(a)>strlen(b)) l=strlen(a)+2; else l=strlen(b)+2;c=(char *) malloc(l*sizeof(char) 阅读全文

posted @ 2011-07-22 14:21 kuangbin 阅读(7119) 评论(2) 推荐(3) 编辑

导航

JAVASCRIPT: