校级选拔赛测试
1、约数个数
2400000有多少个约数(只计算正约数)。
代码解法:
#include<stdio.h>
int main() {
int n=2400000;
int sum = 0;
//scanf_s("%d", &n);
if (n == 0) return 0;
for (int i = 1; i <= n / 2; i++) {
if (n % i == 0) {
sum++;
}
}
printf("%d", sum + 1);//任何数本身为其一个约数
}
答案:108
2、组合问题
在2020个有区别的球中选3个球放在一个盘子里,请问有多少种选法?
暴力解法:2020x2019x2018=8230170840
3、星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。每个炸弹都可以设定多少天之后爆炸。比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2020年11月27日放置,定时为10000天,请你计算它爆炸的准确日期。
格式要求:yyyy-MM-dd
代码解法:
#include<stdio.h>
int main(void)
{
int a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
int days = 10000;
int year = 2020, month = 11, day = 27;
for (int i = 0; i < days; i++)
{
day++;
if (day > a[month - 1])
{
month++;
day = 1;
if (month > 12)
{
year++;
month = 1;
if ((year % 400) == 0 || (year % 4 == 0 && year % 100 != 0))
a[1] = 29;
else
a[1] = 28;
}
}
}
printf("%d-%d-%d", year, month, day);
return 0;
}
答案: 2048-04-14
4、单位换算
某星球的天文服务器容量换算为地球的标准是9123456783TB,请问该服务器的存储容量是多少字节?
暴力解法:
代码解法:
package cn.charles.test4;
import java.math.BigInteger;
public class Test4 {
public static void main(String[] args) {
BigInteger b=new BigInteger("9123456783");
BigInteger b1=new BigInteger("1024");
System.out.println(b.multiply(b1).multiply(b1).multiply(b1).multiply(b1));
}
}
答案:10031346818420318404608
5、海伦公式
在寸土寸金的年代,房价越来越高,造成高房价的原因有许多,而土地价格高、人力价格高、物价上涨等都是因素之一。但是,土地价格高应该占了主要因素。既然土地价高,土地面积的计算就成为一个很重要的任务。但是,有些地块的形状并不规则,甚至有的地块的形状像图1中所示的五边形那样。
一般需要把它划分为多个三角形来计算。
已知三边求三角形的面积需要用海伦定理,参见图2
图1 土地形状 图2 海伦定理
要求:根据这些数据求相应地块的面积。四舍五入到小数后两位。只写结果,不要源代码!
代码解法:
//计算的是一个三角形的面积,最后结果三个三角形面积之和
#include<stdio.h>
#include<math.h>
int main() {
float a, b, c, p, area;
printf("请输入三角形的三边长\n");
scanf_s("%f %f %f", &a, &b, &c);
p = 1.0 / 2 * (a + b + c);
if (a + b > c && b + c > a && a + c > b) {
area = sqrt(p * (p - a) * (p - b) * (p - c));
printf("三角形的面积为:%7.2f\n", area);
}
else
printf("不能构成三角形\n");
return 0;
}
答案:3952.71