noip第15课作业
1. 累加求和
给定n(1<=n<=100),用递归的方法计算1+2+3+4+5+......+(n-1)+n.
输入:一个大于等于1的整数。
输出:输出一个整数。
【样例输入】
5
【样例输出】
15
#include <iostream> using namespace std;
int fac(int n){
if(n == )
return ;
return (fac(n-) + n);
}
int main(){
int n;
cin >> n;
cout << fac(n) << endl;
return ;
}
2. 苹果划分问题
给定带有编号的n个苹果(a1,a2,...,an)放入k个(0<k<=n<30)无标号的盒子中,使得没有一个盒子为空,请问一共有多少中划分的方法。
输入:一行,两个数空格隔开,第一个是苹果数量,第二个事盒子数量。
输出:一行包含一个数,表示一共有的划分数量。
【输入样例】
10 6
【输出样例】
22827
#include <iostream> using namespace std;
int s(int n,int k){ //配合大数使用。防止数据爆掉
if(n < k || k == )
return ;
if(k == || k == n)
return ;
//n = 3 k = 2
//n = 2 k =1 方法只有1种
// 2 2 方法是1 *2 2 1 + 2 = 3
return s(n-,k-)+k*s(n-,k); }
int main(){
//n是苹果数量 k是盒子数量 n=3 k=2
int n,k;
cin >> n >> k;
cout << s(n,k);
return ;
}
1. Pell数列
Pell数列A1,A2,A3,...的定义是这样的,A1=1,A2=2, ... ,An=2*An-1+An-2(n>2)
给出一个正整数k,要求Pell数列的第k项模上32767是多少。
输入:第一行时测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数k(1<=k<=1000000).
输出:n行,每行输出对应一个输入。输出应是一个非负整数。
【样例输入】
2
1
8
【样例输出】
1
408
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
long long b[];
long long r[];
long long zjf(int n){
if(n<) //设置边界
return n;
if(b[n]==) //记忆化递归调用
b[n]=(*zjf(n-)+zjf(n-))%; //取mod,不让long long数组爆掉,但是为了避免统计错误,就取100000的mod
return (b[n]%);
}
int main()
{
int n,x;
cin>>n;
for(int i=;i<=n;i++){
cin>>x;
//cout<<zjf(x)<<endl;
r[i] = zjf(x);
}
for(int j=;j<=n;j++){
cout << r[j] << endl;
}
}
2. 拆分自然数
任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。拆分成的数字相同但顺序不同被看做是相同的方案,如3+1和1+3被看做是同一种方案。
输入:输入待拆分的自然数n。
输出:如样例输出若干个拆分方案(具体见样例)。
【样例输入】
7
【样例输出】
1+1+1+1+1+1+1
1+1+1+1+1+2
1+1+1+1+3
1+1+1+2+2
1+1+1+4
1+1+2+3
1+1+5
1+2+2+2
1+2+4
1+3+3
1+6
2+2+3
2+5
3+4
#include<bits/stdc++.h>
using namespace std;
int a[];
int print(int n)
{
for(int i=; i<=n; i++)
{
if(i!=)
printf("+");
printf("%d",a[i]);
}
printf("\n");
}
int DFS(int n,int ans) //ans表示递归的深度,每一个深度对应 多个表达式,
{
for(int i=; i<=n/; i++) //后者大于等于前者
{
if(i>=a[ans-]) //保证后一个值一定大于等于前一个值
{
a[ans]=i;
a[ans+]=n-i;
print(ans+);
DFS(n-i,ans+);
}
}
}
int main()
{
int n;
while(~scanf("%d",&n))
{
a[]=;
DFS(n,);
}
}
3. 分数求和
输入n个分数并对他们求和,并用最简单形式表示。所谓的最简单形式是指:分母分子的最大公约数是1;若最终结果的分母为1,则直接用整数表示。
如:5/6, 10/3均是最简形式,而3/6需要化简为1/2, 3/1需要化简为3。
分子分母均不为0,也不为负数。
输入:第一行是一个整数n,表示分数个数,1<=n<=10;接下来的n行,每行一个分数,用”p/q”的形式表示,不含空格,p,q均不超过10。
输出:只有一行,即最终结果的最简形式。若为分数,用”p/q”表示。
【样例输入】
2
1/2
1/3
【样例输出】
5/6
#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<iomanip>
#include<math.h>
#include<cstdio>
using namespace std;
int gcd(int a,int b)//最大公约数
{
if(b==) return a;
return gcd(b,a%b);
}
int lcd(int a,int b)//最小公倍数
{
int c;
if(a<=||b<=) return -;
c=gcd(a,b);
return a*b/c;
}
int main()
{
int n,d,num1=,num2=,num3=,num4=;
cin>>n;
char c;
while(n--)
{
scanf("%d%c%d",&num1,&c,&num2);
d=lcd(num2,num4);
num3=num3*d/num4+num1*d/num2;
num4 =d;
d=gcd(num3,num4);
if(d>)
{
num3/=d;
num4/=d;
}
}
num4>?printf("%d/%d",num3,num4):printf("%d",num3);
}
noip第15课作业的更多相关文章
- noip第34课作业
1. 信息加密 [问题描述] 在传递信息的过程中,为了加密,有时需要按一定规则将文本转换成密文发送出去.有一种加密规则是这样的:1. 对于字母字符,将其转换成其后的第3个字母.例如:A→D,a→ ...
- noip第33课作业
1. 排座椅 [问题描述] 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同 ...
- noip第29课作业
1. 钢条切割 [问题描述] 一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi.那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大. ...
- noip第28课作业
分段数列 [问题描述] 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求. 输入格式: 输入第1行包含两个正整 ...
- noip第17课作业
1. 召见骑士 [问题描述] 某王国有5位骑士,每位骑士都有自己的编号,且这个王国的编号都为奇数,分别为1,3,5,7,9,在国王召见他们之前他们都必须经过只能从一边进出的长廊,长廊的宽度只能坐一个 ...
- noip第16课作业
1. 猴子吃桃 [问题描述] 猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个:第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个:以后每天都吃前一天剩下的一半多一个,到第10天想再吃时 ...
- noip第5课作业
1. 计算税收 [问题描述] 对某产品征收税金,在产值1万元以上收税5%:在1万元以下但在5000元或者以上的征收税3%:在5000元以下但在1000元或以上征收税2%:1000元以下的免收税 ...
- noip第9课作业
1. 打印乘法表 [问题描述] 用for循环实现输出1至9的乘法表 [样例输出] 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4 ...
- noip第8课作业
1. 计算书费 [问题描述]下面是一个图书的单价表: 计算概论 28.9 元/本 数据结构与算法 32.7 元/本 数字逻辑 45.6元/本 C++程序设计教程 78 元/本 人工智能 35 ...
随机推荐
- u-boot之make all执行过程分析
在执行make 100ask24x0_config之后就配置完成了针对JZ2440开发板的UBOOT,接下来需要执行make all进行编译链接最终生成u-boot.map.u-boot.srec.u ...
- Android开发之动态设置字体的样式和粗细
字体设置通常有两种形式: 1:在xml中直接设置 android:textStyle="bold" android:typeface="sans" 2:用jav ...
- hdu 1026(BFS+输出路径) 我要和怪兽决斗
http://acm.hdu.edu.cn/showproblem.php?pid=1026 模拟一个人走迷宫,起点在(0,0)位置,遇到怪兽要和他决斗,决斗时间为那个格子的数字,就是走一个格子花费时 ...
- Numpy copy & deep copy
1. '='的赋值方式会带有关联性 >>> import numpy as np >>> a = np.arange(4) >>> b = a & ...
- ZBlog你选择PHP还是ASP?
最近趁着空闲玩了一下zblog,对于很多第一次接触zblog的博主大多都会问zblog是PHP好还是ASP好?我们应该如何选择?其实,对于这个问题我也不是很懂,我个人比较倾向于PHP.今天我就整理一下 ...
- 知名APP(支付宝、微信、花瓣等)首页设计技巧及原型实例讲解
APP首页设计对APP自身来说是至关重要的,一款优秀的APP产品,其首页设计不仅需要清晰的展示产品核心功能,给用户创造良好的用户体验,而且还需要展示公司的品牌形象,提升在用户心中的品牌认知度.今天,就 ...
- phantomjs问题收集
1. phantomjs如果遇到重定向的url,两个页面都会加载,onInitialized只会执行一次,onResourceReceived会执行两次.我试过在onInitialized加一段代码, ...
- install virtualenv
$ [sudo] pip install virtualenv $ mkdir ~/envs $ virtualenv ~/envs/lsbaws/ $ cd ~/envs/lsbaws/ $ ls ...
- windows 10 开发学习资料,Windows-universal-samples学习笔记系列一:App settings
windows 10 通用代码范例: https://github.com/Microsoft/Windows-universal-samples 相关视频:https://mix.office.co ...
- input.file样式修改
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...