#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int n = 0;
int i = 0;
int ret = 1;
printf("请输入n的值,来计算n的阶乘\n");
scanf("%d", &n);//放不下了就溢出了,结果为0
if (n == 0)
{
printf("n=0时,n的阶层为0\n");
}
else
{
for ( i = 1;i<=n;i++)
{
ret = ret*i;
}
printf("n的阶乘=%d", ret);
}
}
//for循环计算阶乘
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int n = 0;
int i = 0;
int ret = 1;
int sum = 0;
for (n = 1; n <= 10;n++)
{
ret = ret*n;
sum = sum + ret;
}
printf("%d", sum);
}
// 打印 1!+2!+3!+....+10!=? 4037913
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int k = 11;
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
for (i = 0; i < sz; i++)
{
if (k == arr[i])
{
printf("找到了,下标是%d\n", i);
break;
}
}
if (i == sz)
printf("找不到\n");
return 0;
}
// 寻找数组下标(低效,没有使用二分法)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int k = 11;
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int sz = sizeof(arr) / sizeof(arr[0]);//元素个数
int left = 0;//左下标
int right = 9;//右下标
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] > k)
{
right = mid - 1;
}
else if (arr[mid] < k)
{
left = mid + 1;
}
else
{
printf("找到了,下标是%d\n", mid);//当目标数字==k时
break; //这个过程中mid就是对应数字的下标。
}
if (left>right)
{
printf("找不到了\n");
}
}
return 0;
}
//寻找下标。如果找得到,显示下标;找不到,结果就是找不到了