1、鸡兔同笼问题
//已经鸡和兔的总数量为n 总腿数为m 输入 n,m 输出鸡和兔的数量
//分析:设鸡a只 兔b只 a+b=n 2a+4b=m a=(4n-m)/2 b=n-a
//鸡兔同笼
void ChickenRibbit()
{
//已经鸡和兔的总数量为n 总腿数为m 输入 n,m 输出鸡和兔的数量
//分析:设鸡a只 兔b只 则建设方式组a+b=n 2a+4b=m 解得a=(4n-m)/2 b=n-a
int a, b ,m, n;
scanf_s("%d%d", &n, &m);
a = (4*n - m) / 2;
b = n - a;
if (m%2==1||a<0||b<0)
{
printf_s("无解\n");
}
else
{
printf_s("%d %d\n", a, b);
}
}
2、麦克劳林公式近似值求pi
取X=1 arctan 1= pi/4=1-1/3+1/5-1/7…
void approximateVal()
{
double sum = 0;
for (size_t i = 0; ; i++)
{
double term = 1.0 / (i * 2 + 1);
if (i % 2 == 0)
{
sum += term;
}
else
{
sum -= term;
}
if (term < 1e-7)
{
break;
}
}
printf_s("%.6f\tpi=%.10f\n", sum, sum * 4);
}
3、开灯问题
有n盏灯编号为1~n,第一个人把所有灯都打开,第二个人把编号为2的关掉,第三个人把3的倍数的开的关,关的开
以此类推 一共有K个人。问最后有哪些灯开着?
void openlight()
{
int n, k, first=1;
memset(a, 0, sizeof(a));
scanf_s("%d%d", &n, &k);
for(int i=1;i<=k;i++)
{
for(int j=1;j<=n;j++)
{if(j%i==0)
{
a[j] = !a[j];
}
}
}
for(int i=1;i<=n;i++)
{
if(a[i])
{
if(first)
{
first = 0;
}
else
{
printf_s(" ");
}
printf_s("%d", i);
}
}
printf_s("\n");
}