2025-03-13 学习记录--C/C++-PTA 练习2-17 生成3的乘方表
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、题目描述 ⭐️
练习2-17 生成3的乘方表
输入一个非负整数n,生成一张3的乘方表,输出3^0~$$3^n$$
的值。可调用幂函数计算3的乘方。
输入格式:
输入在一行中给出一个非负整数n。
输出格式:
按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。
输入样例:
3
输出样例:
pow(3,0) = 1
pow(3,1) = 3
pow(3,2) = 9
pow(3,3) = 27
二、代码(C语言)⭐️
#include <stdio.h>
#include <math.h>
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i <= n; i++) {
// 使用 long long 类型存储结果,避免溢出
long long result = (long long)pow(3, i);
// 使用 %lld 输出 long long 类型的值
printf("pow(3,%d) = %lld\n", i, result);
}
return 0;
}
三、知识点 ⭐️
pow
函数的返回值类型:
pow
函数的返回值类型是double
,而代码中将结果赋值给long long
类型的变量result
。- 这可能会导致 精度丢失或溢出 问题。
- 所以需进行强制转换 ❀:
(long long)pow(3, i)
,即:将double
类型强制转换成long long
类型。