CCF入门篇练习(1)

你好呀,我是目录

      • 1001. 温度转换
      • 1002. 三角形
      • 1003. 猜数游戏
      • 1004. 填充矩形
      • 1005. 存款收益
      • 1007. 计算余数
      • 1008. 水仙花数
      • 1009. 分配任务
      • 1010. 邮寄包裹
      • 1012. 变换密码

1001. 温度转换

题目:将输入的华氏温度转换为摄氏温度。由华氏温度F与摄氏温度C的转换公式为:F=C×9/5+32。

输入
输入一个实数,表示华氏温度

输出
输出对应的摄氏温度,答案保留4位小数。

样例输入

50

样例输出

10.0000

C语言

#include 
int main()
{double F, C;scanf("%lf", &F); C = (F - 32) * 5 / 9;printf("%.4lf", C);	  // 保留n位小数 %.nlfreturn 0;	
} 

C++

#include 
#include   // 保留小数位的头文件
using namespace std;
int main()
{double F, C;   // 华氏温度:Fahrenheit   摄氏温度:Celsius  cin >> F;C = (F - 32) * 5 / 9;   // 转换公式cout << fixed << setprecision(4) << C;  // 保留4位小数return 0;
} 

🍅 Try it 🗝 1001. 温度转换 (Standard IO)


1002. 三角形

题目:输入三角形三边长a,b,c(保证能构成三角形),输出三角形面积。

输入
一行三个用一个空格隔开的实数a,b,c,表示三角形的三条边长。

输出
输出三角形的面积,答案保留四位小数。

样例输入

3 4 5

样例输出

6.0000

海伦公式求三角形面积
area = sqrt(p*(p - a)(p - b)(p - c))
半周长:p = (a + b + c) / 2

C语言

#include 
#include 
int main()
{double a, b, c;double p, area;scanf("%lf %lf %lf", &a, &b, &c);p = (a + b + c) / 2;area = sqrt(p*(p - a)*(p - b)*(p - c));printf("%.4lf", area);return 0;
}

C++

#include 
#include    // 保留小数点所需头文件
#include      // 使用数学函数库所需头文件
using namespace std;
int main()
{double a, b, c, p, area;   // p:半周长cin >> a >> b >> c;p = (a + b + c) / 2;   // 求半周长parea = sqrt(p*(p - a)*(p - b)*(p - c));   // 海伦公式求三角形面积cout << fixed << setprecision(4) << area << endl;   // 保留四位小数return 0; 
}

🍅 Try it 🗝 1002. 三角形 (Standard IO)


1003. 猜数游戏

题目:有一个“就是它”的猜数游戏,步骤如下:请你对任意输入的一个三位数x,在这三位数后重复一遍,得到一个六位数,467–>467467.把这个数连续除以7、11、13,输出最后的商。

输入
输入一个三位数x。

输出
输出最后的商。

样例输入

100

样例输出

100

C语言

#include 
int main()
{int n1, n2, a, b, c;scanf("%d", &n1);a = n1 % 10;b = n1 / 10 % 10;c = n1 / 100;n2 = n1*1000 + (c*100 + b*10 + a);double result = n2 / 7 / 11 / 13;printf("%.0lf", result);	// 注意:输出结果斩掉小数位return 0;
}

C++

#include 
using namespace std;
int main()
{int n1, n2, a, b, c;cin >> n1;a = n1 % 10;   // 个位b = n1 /10 % 10;  // 十位c = n1 / 100;  // 百位n2 = n1 * 1000 + c * 100 + b * 10 + a;  // 得到新的六位数double result = n2 / 7 / 11 / 13;   // 连续除以7、11、13cout << result << endl;return 0;
}

🍅 Try it 🗝 1003. 猜数游戏 (Standard IO)


1004. 填充矩形

题目:已知矩形的大小为n×m,现用a×a的正方形填充该矩形。输入三个正整数n,m,a(n,m,a≤10^9),计算至多能填入多少正方形?(正方形可以正好碰到矩形边界,但不能超出矩形外)
数据范围限制
1<=n,m,a≤10^9

输入
一行三个用一个空格隔开的正整数n,m,a。

输出
输出能填入正方形的数量。

样例输入

3 4 1

样例输出

12

C语言
本题注意点:根据数据范围限制,选用变量类型 long

#include 
int main()
{long n, m, a, cnt;scanf("%ld %ld %ld", &n, &m, &a);	// long类型的输入输出表示 %ldcnt = (n / a) * (m / a);printf("%ld", cnt);return 0;
}

C++

#include 
using namespace std;
int main()
{long n, m, a, cnt;   // 注意数据范围 cin >> n >> m >> a;cnt = (n / a) * (m / a);cout << cnt << endl;return 0; 
}

🍅 Try it 🗝 1004. 填充矩形 (Standard IO)


1005. 存款收益

题目:按年利率R%存入本钱X,存入P年后的本利合计为Y=X*((100+R)/100)^P,求Y的值。

输入
输入一行三个空格隔开的实数R,X,P

输出
输出收益Y,答案保留两位小数。

样例输入

1 100 5

样例输出

105.10

C语言

#include 
#include  
int main()
{double R, X, P, Y;scanf("%lf %lf %lf", &R, &X, &P);Y =  X * pow((100+R)/100, P);printf("%.2lf", Y);return 0;
}

C++

#include 
#include    // 保留小数位所需头文件
#include      // 使用数学函数库所需头文件
using namespace std;
int main()
{double R, X, P, Y;cin >> R >> X >> P;Y = X * pow((100 + R) / 100, P);cout << fixed << setprecision(2) <<  Y << endl;	  // 保留两位小数return 0;
} 

🍅 Try it 🗝 1005. 存款收益 (Standard IO)


1007. 计算余数

题目:计算两个双精度浮点数a和b相除的余数,a和b都是正数。这里余数(r)的定义是:a = k * b + r,其中 k是整数, 0 <= r < b。

输入
一行两个空格隔开的数a和b。

输出
输出a除以b的余数(答案保留两位小数)。

样例输入

3 2

样例输出

1.00

C语言

#include 
int main()
{double a, b, k, r;scanf("%lf %lf", &a, &b);k = (int)(a / b);	// 强制类型转换r = a - k * b;printf("%.2lf", r);return 0;
}

C++

#include 
#include   // 保留小数位所需头文件
using namespace std;
int main()
{double a, b, k, r;cin >> a >> b;// a = k * b + rk = (int)(a / b);r = a - k * b;cout << fixed << setprecision(2) << r << endl;  // 保留两位小数return 0;
}

🍅 Try it 🗝 1007. 计算余数 (Standard IO)


1008. 水仙花数

题目:输入一个三位数n,判断是否为水仙花数,如果是则输出“YES”,不是则输出“NO”。水仙花数:是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
数据范围限制
100<=n<=999

输入
输入一个三位数n。

输出
按照题目描述输出对应结果。

样例输入

153

样例输出

YES

C语言

#include 
#include 
int main()
{int n1, n2, a, b, c;scanf("%d", &n1);a = n1 % 10;b = n1 / 10 % 10;c = n1 / 100;n2 = pow(a, 3) + pow(b, 3) + pow(c, 3);if (n1 == n2)printf("YES");elseprintf("NO"); return 0; 
}

C++

#include 
#include    // 使用数学函数库所需头文件
using namespace std;
int main()
{int n1, n2, a, b, c;cin >> n1;a = n1 % 10;   // 个位b = n1 / 10 % 10;  // 十位c = n1 / 100;  // 百位	n2 = pow(a, 3) + pow(b, 3) + pow(c, 3);if (n1 == n2)cout << "YES" << endl;elsecout << "NO" << endl;return 0;
} 

🍅 Try it 🗝 1008. 水仙花数 (Standard IO)


1009. 分配任务

题目:在社会实践活动中有三项任务分别是:种树、采茶、送水。依据小组人数及男生、女生人数决定小组的接受任务,人数小于10人的小组负责送水(输出water),人数大于等于10人且男生多于女生的小组负责种树(输出tree),人数大于等于10人且男生不多于女生的小组负责采茶(输出tea)。输入小组男生人数、女生人数,输出小组接受的任务。

输入
一行两个空格隔开的数,表示小组中男生和女生的人数。

输出
输出对应的任务。

样例输入

5 3

样例输出

water

C语言

#include 
int main()
{int boys, girls, total;scanf("%d %d", &boys, &girls);total = boys + girls;  if (total >= 10){if (boys > girls)printf("tree");elseprintf("tea");}elseprintf("water");return 0;} 

C++

#include 
using namespace std;
int main()
{int boys, girls, total;cin >> boys >> girls;total = boys + girls;  // 总人数if (total >= 10){if (boys > girls)cout << "tree" << endl;elsecout << "tea" << endl;}elsecout << "water" << endl;return 0;
} 

🍅 Try it 🗝 1009. 分配任务 (Standard IO)


1010. 邮寄包裹

题目:某邮局对邮寄包裹有如下规定:若包裹的重量超过30千克,不予邮寄,对可以邮寄的包裹每件收手续费0.2元,再加上根据下表按重量wei计算的结果:

重量(千克) 收费标准(元/公斤)
wei<=10 0.80
10 20 请你编写一个程序,输入包裹重量,输出所需费用或”Fail”表示无法邮寄。

输入
输入一个正整数,表示邮寄包裹的重量。

输出
输出对应的费用(答案保留2位小数)或“Fail”表示无法邮寄。

样例输入

7

样例输出

5.80

C语言

#include 
int main()
{int wei;scanf("%d", &wei);double f1, f2, fee;  // 费用f1 = 0.8 * 10;f2 = f1 + 10 * 0.75;if (wei <= 30){if (wei <= 10)fee = wei * 0.8;else if (wei <= 20)fee = f1 + (wei - 10) * 0.75;elsefee = f2 + (wei - 20) * 0.7;fee+=0.2; printf("%.2lf", fee);}elseprintf("Fail");return 0;
}

C++

#include 
#include    // 保留小数所需头文件
using namespace std;
int main()
{int wei;   // 重量cin >> wei;double f1, f2, fee;  // 费用f1 = 0.8 * 10;f2 = f1 + 10 * 0.75;if (wei <= 30){if (wei <= 10)fee = 0.8 * wei;else if (wei <= 20)fee = f1 + (wei - 10) * 0.75;elsefee = f2 + (wei - 20) * 0.70;fee += 0.2;   // 收手续费0.2元cout <<	fixed << setprecision(2) << fee << endl;  // 保留2位小数}elsecout << "Fail" << endl;   // 超过30千克,无法邮寄return 0;
} 

🍅 Try it 🗝 1010. 邮寄包裹 (Standard IO)


1012. 变换密码

题目:一密码变换规则如下:一个正整数对应一个字符;如果该数模123的值在97-122范围,变换为ASCII为该余数对应的小写字符;如果变换不了小写字符,将该数模91,若余数在65-90范围,变换为ASCII为该余数对应的大写字符;如果变换不了大小写字符,变换为“*”。输入一个正整数,输出变换后的字符。

输入
输入一个正整数n(1<=n<=1000)表示原始密码。

输出
输出变换后的密码。

样例输入

42

样例输出

在这里插入图片描述

C语言

#include 
int main()
{int n;scanf("%d", &n);char c;if (n % 123 >= 97 && n % 123 <= 122)c = n % 123;else if (n % 91 >= 65 && n % 91 <= 90)c = n % 91;elsec = '*';printf("%c", c);return 0;
}

C++

#include 
using namespace std;
int main()
{int n;cin >> n;char c;if (n % 123 >= 97 && n % 123 <= 122)c = n % 123;else if (n % 91 >= 65 && n % 91 <= 90)c = n % 91;elsec = '*';cout << c << endl;return 0;
} 

🍅 Try it 🗝 1012. 变换密码 (Standard IO)


🍅 🍅 🍅 撸起袖子加油干 🔊

  • 👉 CCF入门篇练习(2)
  • 👉 CCF入门篇练习(3)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部