C语言编程题,新手求指教这题代码该怎么写啊
题目描述某数列为K(n)的定义为:1n=1k(n)=(k(n-1)/5)-3n为偶数k(n-1)^2×3n为奇数请编写递归函数求该数列的第x项k(x),小数点后保留3位小...
题目描述某数列为K(n)的定义为: 1 n=1
k(n)= (k(n-1)/5)-3 n为偶数
k(n-1)^2×3 n为奇数请编写递归函数求该数列的第x项k(x), 小数点后保留3位小数。
输入
输入多个整数n,当输入一个小于1的整数表示结束。
输出
输出对应的函数k(n)值,若n<1,则输出“input data error!”样例输入2
5
0
样例输出k(2)=-2.800
k(5)=8.711
input data error! 展开
k(n)= (k(n-1)/5)-3 n为偶数
k(n-1)^2×3 n为奇数请编写递归函数求该数列的第x项k(x), 小数点后保留3位小数。
输入
输入多个整数n,当输入一个小于1的整数表示结束。
输出
输出对应的函数k(n)值,若n<1,则输出“input data error!”样例输入2
5
0
样例输出k(2)=-2.800
k(5)=8.711
input data error! 展开
1个回答
展开全部
不懂可追问,楼主加油了
#include <stdio.h>
float K(int n)
{
if (n < 1)
{
printf("input data error!\n");
return 0;
}
if (n == 1)
{
return 1;
}
else if (n % 2 == 0)
{
return (K(n-1)/5)-3;
}
else if (n % 2 == 1)
{
return K(n-1) * K(n-1) * 3;
}
}
int main()
{
int n;
float r;
while (1)
{
scanf("%d", &n);
r = K(n);
if (n >= 1)
{
printf("%.3f\n", r);
}
}
return 0;
}
#include <stdio.h>
float K(int n)
{
if (n < 1)
{
printf("input data error!\n");
return 0;
}
if (n == 1)
{
return 1;
}
else if (n % 2 == 0)
{
return (K(n-1)/5)-3;
}
else if (n % 2 == 1)
{
return K(n-1) * K(n-1) * 3;
}
}
int main()
{
int n;
float r;
while (1)
{
scanf("%d", &n);
r = K(n);
if (n >= 1)
{
printf("%.3f\n", r);
}
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询