1、打印所有不超过 n(n<256)的,其平方具有对称性质的数。如 11*11=121。
#include <cstdio>
#include <iostream>
bool check(int i)
{
int j,n=0;
char num[6];
i=i*i;
while(i>0)
{
num[n++]=i%10;
i=i/10;
}
i=0;j=n-1;
while(i<j)
{
if(num[i++]!=num[j--]) //yilou
return false;
}
return true;
}
int main()
{
int i=1,n=0;
for(;i<256;i++)
{
if(check(i)==true)
{
printf("%5d",i);
n++;
if(n%5==0)
printf("\n");
}
}
printf("\n");
return 0;
}
2、编写一个求菲波那奇数列的递归函数,输入 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 <cstdio>
int f(int n)
{
if(n==0)
return 0;
if(n==1)
return 1;
else
return f(n-1)+f(n-2);
}
int main()
{
int i,j,n,k;
printf("请输入n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=0;j<(2*n-2*i)/2;j++)
printf(" ");
for(k=0;k<(2*i-1);k++)
// printf("%d",k);
printf("%d ",f(k));
printf("\n");
}
return 0;
}
1、某人有 8 角的邮票 5 张,1 元的邮票 4 张,1元 8 角的邮票 6 张,用这些邮票中的一张或若干张可以得到多少种不同的邮资?
#include <cstdio>
#include <set>
using namespace std;
int main()
{
set<int> s;
int num[3]={5,4,6};
int money[3]={8,10,18};
int i,j,k,count;
for(i=0;i<=num[0];i++)
{
for(j=0;j<=num[1];j++)
{
for(k=0;k<=num[2];k++)
{
if((i+j+k)>0)
{
count=money[0]*i+money[1]*j+money[2]*k;
// printf("%5d",count);
s.insert(count);
}
}
}
}
printf("%d\n",s.size());
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 <cstdio>
int f(int i,int j) //第i行的第j个数字
{
int num;
if(j==1 || j==i) //首部和尾部
return 1;
num=f(i-1,j-1)+f(i-1,j);
return num;
}
int main()
{
int i,j,n;
printf("请输入n的值\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=0;j<n-i;j++)
printf(" ");
for(j=1;j<=i;j++)
{
printf("%d ",f(i,j));
}
printf("\n");
}
return 0;
}