1、整币兑零(CoinChange.cpp)
【问题描述】
计算n元整币兑换成1分、2分、5分、1角、2角和5角等6种零币的不同兑换种数。
【输入】
输入文件CoinChange.in有一行,包含一个整数,即输入的整币,其单位为元。
【输出】
输入文件CoinChange.out有一行,包含一个整数,即不同兑换种数。
【输入示例】
1
【输出示例】
4562
#include <stdio.h>
int main()
{
int p1,p2,p3,p4,p5,p6,n;
long m=0;
scanf("%d",&n);
n=n*100;
//*******************************************************
for(p1=0;p1<=100;p1++)
for(p2=0;p2<=50;p2++)
for(p3=0;p3<=20;p3++)
for(p4=0;p4<=10;p4++)
for(p5=0;p5<=5;p5++)
for(p6=0;p6<=2;p6++)
{
if(n==p6*50+p5*20+p4*10+p3*5+p2*2+p1)
m++;
}
//********************************************************
printf("%ld \n",m);
return 0;
}
示例展示:
2、摆动数列(Sequence.cpp)
【问题描述】
如果某数列从第2项开始,有些项大于它的前一项,有些项小于它的前一项,则这样的数列叫摆动数列。已知摆动数列:a(1)=1、a(2i)=a(i)+1、a(2i+1)=a(i)+a(i+1),其中i为正整数,编程求该数列的第n项和最大值。
【输入】
输入文件Sequence.in有一行,包含一个整数,即输入的项目数n。
【输出】
输入文件Sequence.out有两行,第1行是一个整数,为数列的第n项;第2行也是一个整数,为数列的最大值。
【输入示例】
2011
【输出示例】
225
321
#include <stdio.h>
void main()
{
int i,n,max,a[10000];
scanf("%d",&n);
//****************************************
for(i=1;i<=n;i++)
{
a[1]=1;
a[2*i]=a[i]+1;
a[2*i+1]=a[i]+a[i+1];
}
max=a[1];
for(i=1;i<=n;i++)
{
if(a[i]>max)
max=a[i];
}
//***************************************
printf("%d\n",a[n]);
printf("%d\n",max);
}
示例展示:
3、杨辉三角形(Triangle.cpp)
【问题描述】
杨辉三角,历史悠久,是我国古代数学家杨辉揭示二项展开式各项系数的数字三角形。
我国北宋数学家贾宪约1050年首先使用“贾宪三角”进行高次开方运算,南宋数学家杨辉在《详解九章算法》记载并保存了“贾宪三角”,故称杨辉三角。元朝数学家朱世杰在《四元玉鉴》扩充了“贾宪三角”成“古法七乘方图”。在欧洲直到1623年以后,法国数学家帕斯卡才发现了“帕斯卡三角”。
杨辉三角构建规律主要包括横行各数之间的大小关系以及不同横行数字之间的联系,奥妙无穷:每一行的首尾两数均为1;第k行共k个数,除首尾两数外,其余各数均为上一行的肩上两数的和。下图为5行杨辉三角。
【输入】
输入文件Triangle.in有一行,包含一个整数,即杨辉三角的行数n。
【输出】
输入文件Triangle.out有一行,即为杨辉三角的第n行,包含n个数字,每个数字之间用一个空格隔开。
【输入示例】
5
【输出示例】
1 4 6 4 1
#include<stdio.h>
void main()
{
int n,i,j,a[20][20];
scanf("%d",&n);
//*****************************************
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
if(j==1 || j==i)
{
a[i][j]=1;
}
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
//*****************************************************
for(i=1;i<=n;i++)
printf("%d ",a[n][i]);
printf("\n");
}
示例展示: