废话不多说
#include<stdio.h>
#include<math.h>
int dis(long long int, long long int);
int fuc1(int , int , int );
int main()
{
printf("没有交互,请自行设置,程序编写者给您提供了充足的发挥空间。\n");
fuc1(0, 0, 1);
return 0;
}
//函数1,题目一的函数定义
int dis(long long int X, long long int Y)//大写的XY是参照量
{
long long int x = 0;
long long int y = 0;//x和y都是计算量
int s = 0;//s是要求的螺线距离
int i = 0;
int j = 0;//这几个作为循环的变量,也做计算使用
for (i = 1; (x != X) || (y != Y);i++)
{
for (j = 1;j <= i;j++)
{
if ((x == X) && (y == Y))
break;
x = x + pow(-1, i);
s++;
if ((x == X) && (y == Y))
break;
}
for (j = 1;j <= i;j++)
{
if ((x == X) && (y == Y))
break;
y = y + pow(-1, i + 1);
s++;
if ((x == X) && (y == Y))
break;
}
}
//printf("s=%d", s);
return s;
}
//函数2,题目二的函数定义
int fuc1( int M, int N, int D)
{
long long S = 0;
int p = 0;
int q = 0;
for (p = (M - D);(M - D) <= p&&p <= (M + D);p++)
{
for (q = (N - D);(N - D) <= q&&q <= (N + D); q++)
{
int d = pow(p - M, 2)+ pow(q - N, 2);
if (d <= pow(D, 2))
{
S = S + dis(p, q);
}
}
}
printf("S=%lld", S);
return S;
}
小红心拿来。
xixixixi
(图片来源网络,侵删)