有一个边长为 n 的等边三角形,以此三角形为初始状态开始生成科赫曲线。
求第k次执行此过程后的曲线长度
输入两个整数n k,分别代表等边三角形的边长和要执行的次数。(1<=n<=1000, 1<=k<=20)
#include<stdio.h>
#include<math.h>
int main()
{
int n,k;
scanf ("%d%d",&n,&k);
double x=(double)n;
double y=(double)k;
double sum;
int m=3;
if(n>=1&&n<=1000&&k<=20&&k>=1)
{
for (long int i=1;i<=k;i++)
{
x/=3;
m=4*m;
sum=m*x;
}
}
printf ("%.2lf",sum);
return 0;
}
当k大于15后就输出负数了
可能是发生数据溢出了,尝试每次计算完后保留有效小数
x=(int)(100.0*x)/100.0;//保留2位小数