1. 某人有 8 角的邮票 5 张,1 元的邮票 4 张,1元 8 角的邮票 6 张,用这些邮票中的一张或若干张可以得到多少种不同的邮资?
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
int a,b,c;
int temp;
int ans=0;
int flag[200]={0};
for(a=0;a<=5;a++)
for(b=0;b<=4;b++)
for(c=0;c<=6;c++)
{
temp=a*8+b*10+c*18;
if(flag[temp]==0)
ans++;
flag[temp]=1;
}
cout<<"共有"<<ans<<"种不同的邮资"<<endl;
for(int i=0;i<200;i++)
if(flag[i])
cout<<float(i)/10<<" ";
cout<<endl;
return 0;
}
2. 输入 n 值, 使用递归函数,求杨辉三角形中各个位置上的值,按照如下形式打印输出图形。例如:当n=6 时。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int num[200][200];
for(int i=1;i<200;i++)
{
num[i][1]=1;
num[i][i]=1;
}
for(int i=3;i<=n;i++)
for(int j=2;j<i;j++)
{
num[i][j]=num[i-1][j]+num[i-1][j-1];
}
for(int i=1;i<=n;i++)
{
int k=n-i+1;
while(k--)
cout<<" ";
for(int j=1;j<=i;j++)
cout<<num[i][j]<<" ";
cout<<endl;
}
}
3. 打印所有不超过 n(n<256)的,其平方具有对称性质的数。如 11*11=121。
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
int a[5],b,c,d,e;
int num,i,k;
int flag;
for(i=1;i<256;i++)
{
flag=0;
num=i*i;
a[4]=num/10000;
a[3]=(num-10000*a[4])/1000;
a[2]=(num-10000*a[4]-1000*a[3])/100;
a[1]=(num-10000*a[4]-1000*a[3]-100*a[2])/10;
a[0]=num-10000*a[4]-1000*a[3]-100*a[2]-10*a[1];
k=4;
while(a[k]==0)
k--;
for(int j=0;k>j;k--,j++)
{
if(a[k]!=a[j])
{
flag=1;
break;
}
}
if(flag==0)
cout<<i<<" "<<num<<endl;
}
return 0;
}
4. 编写一个求菲波那奇数列的递归函数,输入 n值,使用该递归函数,输出如下图形。例如:当n=6时。
0
0 1 1
0 1 1 2 3
0 1 1 2 3 5 8
0 1 1 2 3 5 8 13 21
0 1 1 2 3 5 8 13 21 34 55
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int num[5000];
num[1]=0;
num[2]=1;
for(int i=3;i<=n*2;i++)
num[i]=num[i-1]+num[i-2];
for(int i=1;i<=n;i++)
{
int j=n-i+1;
while(j--)
cout<<" ";
for(int k=1;k<=2*i-1;k++)
cout<<num[k]<<" ";
cout<<endl;
}
return 0;
}