题目描述:
1 | •计算一个数字的立方根,不使用库函数 |
1 | 示例1 |
这个题可以套用公式进行快速立方根进行求解:1
2
3
4y是猜测的立方根
x是待分解的数
不断逼近的公式:
(x/(y^2)+2*y)/3
给出python的解法1
2
3
4
5
6def lifang(guess,num):
if(abs(guess**3-num)<0.001):
return guess
else:
t=(num*1.0/(guess*2)+2*guess)/3
return lifang(t,num)
但是这种解法不行,python最大的迭代深度报了
所以采用C解法1
2
3
4
5double cubert(const double y){
double x;
for (x=1.0 ; abs(x*x*x-y)>0.000001;x=(2*x+y/(x*x))/3);
return x
}
完整的代码1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
double getCubeRoot(const double y)
{
double x;
for(x=1.0;abs(x*x*x-y)>1e-7 ; x=(x*2+y/(x*x))/3);
return x;
}
int main()
{
double y,x;
scanf("%lf",&y);
x=getCubeRoot(y);
printf("%0.1f",x);
return 0;
}
题目描述
1 | 将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。 |
示例1
2
3
4输入
I am a student
输出
tneduts a ma I
解题代码:1
2
3
4
5
6
7
8
9
10import sys
try:
s=raw_input()
s=list(s)
s.reverse()
t=''.join(s)
print t
except:
pass
巧用list也可以直接将字符串变成对应的list,在调用list的reverse方法很便捷,但是需要注意的是,让raw_input会剔除对应的’\n’换行符.但是sys.stdin.readline()会读入对应的换行符很难受,strip方法也会剔除对应的空格
问题描述:
1 | 如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。 |
1 | import sys |