20级大数据1班堂测2题解
1 两数和为1909
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
int i,j,n[10],flag=0;
for(i=0; i<10; i++)
scanf("%d",&n[i]);
for(i=0; i<10; i++)
{
for(j=i; j<10; j++)
{
if(n[i]+n[j]==1909)
{
flag=1;
break;
}
}
}
if(flag == 1)
printf("Y\n");
else
printf("N\n");
return 0;
}
2 二进制中"1"的个数
题目要求
输入一个整数,求出该数的二进制中有多少个“1”
输入样例
4
输出样例
1
这道题先用数组存二进制的每一位数,然后遍历数组求有多少个“1”即可
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
int n,count=0,i;
scanf("%d",&n);
int a[100];
for(i=0; n!=0; i++)
{
a[i]=n%2;
if(a[i]==1)
count++;
n=n/2;
}
printf("%d",count);
return 0;
}
3 因子数
题目要求
输入一个整数,求这个整数有多少个因子
输入样例
24
输出样例
8
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
int n,count=0,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(n%i==0)
count++;
}
printf("%d",count);
return 0;
}
4 输出三位数
题目要求
给定0,1,2,3,4,5共6个数字,输出由这6个数中的任意3个不重复的数组成的三位数(百位不为0)
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
int i,j,n;
int a[6]={0,1,2,3,4,5};
for(i=1;i<6;i++)
{
for(j=0;j<6;j++)
{
for(n=0;n<6;n++)
{
if(i!=j&&j!=n&&n!=i)//判断三个数是否存在重复
printf("%d\n",a[i]*100+a[j]*10+a[n]);
}
}
}
return 0;
}