1 条题解
-
0
C
说明
本题要求计算总习题数的30%并输出结果。核心逻辑是:目标完成数 = 总习题数 × 30%(即0.3)。由于题目明确x是10的倍数(如100、20等),因此计算结果一定是整数(如100×0.3=30),无需处理小数或四舍五入。整个过程仅涉及一次乘法运算,时间复杂度为O(1)(常数级)。
代码
#include <stdio.h> int main() { int x; // 读取总习题数x(x是10的倍数) scanf("%d", &x); // 计算30%的数量:x乘以0.3,结果为整数 int target = x * 0.3; // 输出目标完成数 printf("%d\n", target); return 0; }C语言拓展知识
推荐搜索:C语言中整数与浮点数相乘的类型转换规则(为何x为int时,x*0.3会自动转为浮点数再计算)、整数乘法结果的整数转换(如何自动舍弃小数部分)、10的倍数保证计算结果为整数的数学原理。
C++
说明
本题逻辑与C语言一致(目标数 = 总习题数 × 0.3),C++通过输入输出流简化代码,无需格式控制符,同时利用整数与浮点数的自动转换特性,直接计算并输出结果,代码更简洁。
新知识
- 整数与浮点数混合运算:
- 术语:
x * 0.3中int与double的自动转换 - 解释:当整数(int类型的x)与浮点数(0.3是double类型)相乘时,C++会自动将整数转换为浮点数(提升为double)后计算,结果为double类型,再赋值给int变量时自动截断小数部分(本题因x是10的倍数,小数部分为0,截断后即正确结果)。
- 对比:C语言同样遵循此转换规则,但C++的输入输出无需显式格式控制,更直观。
- 术语:
AC
#include <bits/stdc++.h> using namespace std; int main() { int x; // 读取总习题数x(cin自动处理整数输入) cin >> x; // 计算30%的数量,结果为整数 int target = x * 0.3; // 输出目标完成数 cout << target << endl; return 0; }C++拓展知识
推荐搜索:C++中的隐式类型转换规则(整数到浮点数的提升)、
int变量接收double结果时的截断行为(与四舍五入的区别)、如何确保计算结果为整数(如本题中x是10的倍数的必要性)。 - 整数与浮点数混合运算:
- 1
信息
- ID
- 302
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 6
- 标签
- 递交数
- 20
- 已通过
- 12
- 上传者