题目1:
数列求和:输入n,n为首项,之后每项为前项的平方根,求m项和
输入: n,m
输出:数列和,保留两位小数
python代码
import math
while True:
try:
x, n = map(float, input().split())
s = 0.0
while n > 0:
s += x
x = math.sqrt(x)
n -= 1
print("%.2f" % s)
except EOFError:
break
C++代码
#include <math.h>
#include <stdio.h>
int main()
{
int n;
double x, s;
while (~scanf("%lf%d", &x, &n))
{
for(s = 0.0; n--; x = sqrt(x))
s += x;
printf("%.2lf\n", s);
} return 0;
}
题目2
水仙花:153=1^3+5^3+3^3,则153为水仙花数,给定范围m,n.输出[m,n]之间的水仙花数
输入:m,n
输出:水仙花数从小到大排列
python代码
while True:
try:
m, n = map(int, input().split())
t = 0
for i in range(m, n + 1):
a = i // 100
b = (i % 100) // 10
c = i % 10
if i == a**3 + b**3 + c**3 and t == 0:
print(i, end=' ')
t += 1
elif i == a**3 + b**3 + c**3 and t == 1:
print(i, end=' ')
if t != 0:
print()
if t == 0:
print("no")
except EOFError:
break
C++代码
int main(){
int m,n;
while(scanf("%d%d",&m,&n)!=EOF){
int t=0;
for(int i=m; i<=n; i++){
int a=i/100;
int b=i%100/10;
int c=i%10;
if(i==a*a*a+b*b*b+c*c*c && t==0){
printf("%d ",i);
t++;
}
else if(i==a*a*a+b*b*b+c*c*c && t==1){
printf("%d ",i);
}
}
if(t!=0){ printf("\n"); }
if(t==0){ printf("no\n"); }
}
return 0;
}