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课作业的更多相关文章

  1. noip第34课作业

    1.    信息加密 [问题描述] 在传递信息的过程中,为了加密,有时需要按一定规则将文本转换成密文发送出去.有一种加密规则是这样的:1. 对于字母字符,将其转换成其后的第3个字母.例如:A→D,a→ ...

  2. noip第33课作业

    1.    排座椅 [问题描述] 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同 ...

  3. noip第29课作业

    1.   钢条切割 [问题描述] 一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi.那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大. ...

  4. noip第28课作业

    分段数列 [问题描述] 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求. 输入格式: 输入第1行包含两个正整 ...

  5. noip第17课作业

    1.  召见骑士 [问题描述] 某王国有5位骑士,每位骑士都有自己的编号,且这个王国的编号都为奇数,分别为1,3,5,7,9,在国王召见他们之前他们都必须经过只能从一边进出的长廊,长廊的宽度只能坐一个 ...

  6. noip第16课作业

    1. 猴子吃桃 [问题描述] 猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个:第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个:以后每天都吃前一天剩下的一半多一个,到第10天想再吃时 ...

  7. noip第5课作业

    1.     计算税收 [问题描述] 对某产品征收税金,在产值1万元以上收税5%:在1万元以下但在5000元或者以上的征收税3%:在5000元以下但在1000元或以上征收税2%:1000元以下的免收税 ...

  8. 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 ...

  9. noip第8课作业

    1.     计算书费 [问题描述]下面是一个图书的单价表: 计算概论 28.9 元/本 数据结构与算法 32.7 元/本 数字逻辑 45.6元/本 C++程序设计教程 78 元/本 人工智能 35  ...

随机推荐

  1. u-boot之make all执行过程分析

    在执行make 100ask24x0_config之后就配置完成了针对JZ2440开发板的UBOOT,接下来需要执行make all进行编译链接最终生成u-boot.map.u-boot.srec.u ...

  2. Android开发之动态设置字体的样式和粗细

    字体设置通常有两种形式: 1:在xml中直接设置 android:textStyle="bold" android:typeface="sans" 2:用jav ...

  3. hdu 1026(BFS+输出路径) 我要和怪兽决斗

    http://acm.hdu.edu.cn/showproblem.php?pid=1026 模拟一个人走迷宫,起点在(0,0)位置,遇到怪兽要和他决斗,决斗时间为那个格子的数字,就是走一个格子花费时 ...

  4. Numpy copy & deep copy

    1. '='的赋值方式会带有关联性 >>> import numpy as np >>> a = np.arange(4) >>> b = a & ...

  5. ZBlog你选择PHP还是ASP?

    最近趁着空闲玩了一下zblog,对于很多第一次接触zblog的博主大多都会问zblog是PHP好还是ASP好?我们应该如何选择?其实,对于这个问题我也不是很懂,我个人比较倾向于PHP.今天我就整理一下 ...

  6. 知名APP(支付宝、微信、花瓣等)首页设计技巧及原型实例讲解

    APP首页设计对APP自身来说是至关重要的,一款优秀的APP产品,其首页设计不仅需要清晰的展示产品核心功能,给用户创造良好的用户体验,而且还需要展示公司的品牌形象,提升在用户心中的品牌认知度.今天,就 ...

  7. phantomjs问题收集

    1. phantomjs如果遇到重定向的url,两个页面都会加载,onInitialized只会执行一次,onResourceReceived会执行两次.我试过在onInitialized加一段代码, ...

  8. install virtualenv

    $ [sudo] pip install virtualenv $ mkdir ~/envs $ virtualenv ~/envs/lsbaws/ $ cd ~/envs/lsbaws/ $ ls ...

  9. windows 10 开发学习资料,Windows-universal-samples学习笔记系列一:App settings

    windows 10 通用代码范例: https://github.com/Microsoft/Windows-universal-samples 相关视频:https://mix.office.co ...

  10. input.file样式修改

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...