文章目录
-
- [BASIC-9 特殊回文数](http://lx.lanqiao.cn/problem.page?gpid=T48)
- [BASIC-8 回文数](http://lx.lanqiao.cn/problem.page?gpid=T47)
- [BASIC-7 特殊数字](http://lx.lanqiao.cn/problem.page?gpid=T46)
- [BASIC-6 杨辉三角形](http://lx.lanqiao.cn/problem.page?gpid=T10)
- [BASIC-5 查找整数](http://lx.lanqiao.cn/problem.page?gpid=T9)
- [BASIC-4 数列特征](http://lx.lanqiao.cn/problem.page?gpid=T8)
BASIC-9 特殊回文数
#include<stdio.h> int main() {
int n,a,b,c; scanf("%d",&n); for(a=1;a<=9;a ) for(b=0;b<=9;b ) for(c=0;c<=9;c ) {
if(n==2*a 2*b c) printf("%d%d%d%d%d\n",a,b,c,b,a); } for(a=1;a<=9;a ) for(b=0;b<=9;b ) for(c=0;c<=9;c++)
{
if(n==2*a+2*b+2*c)
printf("%d%d%d%d%d%d\n",a,b,c,c,b,a);
}
return 0;
}
注意: 1.从小到大输出,先用循环找出五位的数,再找出六位数 2.用三个变量去遍历循环会比设置五个或六个要快很多
思路: 这里设置了a,b,c三个变量,用if来筛选出符合条件的数。会比直接六个变量六个循环快
BASIC-8 回文数
#include <stdio.h>
int main()
{
int a,b,c,d;
for(a=1;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c=0;c<=9;c++)
{
for(d=0;d<=9;d++)
{
if(a==d&&b==c)
{
printf("%d%d%d%d",a,b,c,d);
putchar('\n');
}
}
}
}
}
return 0;
}
注意:
思路: 这题需要找出四位数中的回文数。我使用了设置四个变量,然后循环相加,判断对称。如果用两个变量,采用上题的方法,应该也是可行的。
BASIC-7 特殊的数字
#include<stdio.h>
int main()
{
int a,b,c;
for(a=1;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c=0;c<=9;c++)
{
if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)
{
printf("%d",a*100+b*10+c);
putchar('\n');
}
}
}
}
return 0;
}
思路: 这题就是按照题目要求,设置三个变量,分别代表个位,十位,百位,然后列出式子即可。
BASIC-6 杨辉三角形
#include<stdio.h>
int main()
{
int i,j,n;
int num[35][35];
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
if(i==0||j==0||j==i)
num[i][j]=1;
else
num[i][j]=num[i-1][j-1]+num[i-1][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
printf("%d ",num[i][j]);
}
putchar('\n');
}
return 0;
}
注意: 1.,因为本题使用数组来实现,为了反正出现的情况,这里我们把数组的大小给到35。
思路: 定义二维数组,根据规律来输出一个杨辉三角。的时候都是1,其余是上一行的数相加。
BASIC-5 查找整数
#include <stdio.h>
int main()
{
int n,i,a,flag=0;
int num[1001];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&num[i]);
scanf("%d",&a);
for(i=0;i<n;i++)
{
if(a==num[i])
{
flag+=1;
break;
}
else
flag=0;
}
if(flag)
printf("%d",i+1);
else
printf("-1");
return 0;
}
注意: 1.的情况,这里我们把数组的大小给到1001。 2.输入的
思路: 按照题目要求输入,然后从数组的开头开始搜索,一旦发现成功,就结束循环,并输出他出现的位数(
BASIC-4 数列特征
#include<stdio.h>
int MAX(int num[],int n);
int MIN(int num[],int n);
int main()
{
int n,i,max,min,sum=0;
int num[10000];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&num[i]);
for(i=0;i<n;i++)
sum=sum+num[i];
max=MAX(num,n);
min=MIN(num,n);
printf("%d\n",max);
printf("%d\n",min);
printf("%d\n",sum);
}
int MAX(int num[],int n)
{
int max,i;
max=num[0];
for(i=0;i<n;i++)
{
if(max<num[i])
max=num[i];
}
return max;
}
int MIN(int num[],int n)
{
int min,i;
min=num[0];
for(i=0;i<n;i++)
{
if(min>num[i])
min=num[i];
}
return min;
}
注意: 1.
思路: 这里我采用了函数的做法来完成。MAX函数和MIN函数来找出数当中的最大值和最小值。for循环累加得出这组数据的和即可。