BC135 KiKi求质数个数
描述
KiKi知道了什么是质数(只能被1和他自身整除的数),他现在想知道所有三位整数中,有多少个质数。
输入描述:
无
输出描述:
一行,一个整数,表示所有三位整数中,有多少个质数。
#include<stdio.h>
int Prime(int n)
{
int i = 0;
for(i = 2; i < n; i++)
{
if(n % i == 0)
return 0;
}
return 1;
}
int main()
{
int i = 0;
int count = 0;
//所有三位数
for(i = 100; i < 1000; i++)
{
if(Prime(i) == 1)
count ++;
}
printf("%d\n",count);
return 0;
}
BC136 KiKi去重整数并排序
描述
给定一个整数序列,KiKi想把其中的重复的整数去掉,并将去重后的序列从小到大排序输出。
输入描述:
第一行,输入一个整数n,表示序列有n个整数。
第二行输入n个整数(每个整数大于等于1,小于等于1000),整数之间用空格分隔。
输出描述:
去重并且从小到大排列的整数序列,整数之间用空格分隔。
示例1
输入:
6
5 3 3 4 2 2
复制
输出:
2 3 4 5
复制
#include<stdio.h>
int main(){
int n,x,i,j;
scanf("%d",&n);
int a[1001]={0};
for(i=1;i<=n;i++)
{
scanf("%d",&x);
a[x]=1;
}
for(i=1;i<=1000;i++)
if(a[i]==1)
printf("%d ",i);
//printf("\n");
return 0;
}
BC137 KiKi判断上三角矩阵
描述
KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
输入描述:
第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (2≤n≤10)
从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。
输出描述:
一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。
示例1
输入:
3
1 2 3
0 4 5
0 0 6
复制
输出:
YES
复制
示例2
输入:
4
1 2 3 4
5 6 7 8
9 0 11 12
13 0 0 16
复制
输出:
NO
复制
#include<stdio.h>
int main()
{
int n = 0;
//1.输入n的值
scanf("%d",&n);
int arr[n][n];//变长数组不可以初始化
int i = 0;
int j = 0;
//录入数据到n*n矩阵中
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
scanf("%d",&arr[i][j]);
}
}
//判断是否为上三角矩阵
//只需要看下三角部分即可(i > j)
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
if(i > j)
{
if(arr[i][j] != 0)
{
printf("NO\n");
break;
//直接return更方便,
//也可以写成break,但跳出去还要判断i==n.j==n
//而且还要进行两个break,容易出错
}
}
}
//break跳到这里,并为完全跳出两层for循环!!!
//所以若用break要判断两次
if(i > j)
{
if(arr[i][j] != 0)
break;
}
}
if(i == n && j == n)
printf("YES\n");
return 0;
}