C语言用穷举法写猜数字代码
时间: 2023-05-19 16:05:34 浏览: 111
以下是C语言用穷举法写猜数字代码的示例:
#include <stdio.h>
int main() {
int answer = 42; // 答案为42
int guess = 1; // 初始猜测为1
while (guess != answer) {
printf("请猜一个数字:");
scanf("%d", &guess);
if (guess < answer) {
printf("猜小了!\n");
} else if (guess > answer) {
printf("猜大了!\n");
} else {
printf("恭喜你,猜对了!\n");
}
}
return 0;
}
相关问题
C语言 使用穷举法并分别用for、while、循环语句求出N~M之间的质数。
好的,我来帮你解答。
首先,我们需要明确一下质数的定义:质数指的是只能被1和自身整除的自然数,大于1的自然数中只有2是偶数,其他质数都是奇数。
下面是使用穷举法,并分别使用for、while循环语句来求解N到M之间的质数的示例代码:
使用for循环语句:
```c
#include <stdio.h>
int main() {
int N, M, i, j;
printf("请输入N和M的值(以空格分隔):");
scanf("%d %d", &N, &M);
printf("N到M之间的质数有:\n");
for (i = N; i <= M; i++) {
if (i == 1)
continue; // 排除1
int isPrime = 1; // 标记是否为质数
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
isPrime = 0; // 不是质数
break;
}
}
if (isPrime)
printf("%d ", i);
}
return 0;
}
```
使用while循环语句:
```c
#include <stdio.h>
int main() {
int N, M, i, j;
printf("请输入N和M的值(以空格分隔):");
scanf("%d %d", &N, &M);
printf("N到M之间的质数有:\n");
i = N;
while (i <= M) {
if (i == 1) {
i++;
continue; // 排除1
}
int isPrime = 1; // 标记是否为质数
j = 2;
while (j <= i / 2) {
if (i % j == 0) {
isPrime = 0; // 不是质数
break;
}
j++;
}
if (isPrime)
printf("%d ", i);
i++;
}
return 0;
}
```
以上两段代码分别使用了for和while循环语句来实现质数的穷举求解。你可以根据需要选择其中一种方式来使用。代码中使用了两层循环,外层循环用于遍历N到M之间的数字,内层循环用于判断当前数字是否为质数。如果满足质数的条件,则输出该数字。
希望能帮到你!如果有任何问题,请随时提问。
C语言算法设计穷举法求亲密数对代码
在C语言中,穷举法是一种基本的搜索策略,常用于解决一些特定的问题,比如寻找两个数字之间的最大公约数(GCD),或者在这个例子中寻找一对整数,它们的乘积等于给定的目标值(亲密数对)。下面是一个简单的穷举法求解亲密数对的示例代码:
```c
#include <stdio.h>
// 计算最大公约数的欧几里得算法
int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
// 检查是否为亲密数对
void find_closet_pair(int target) {
for (int i = 1; i < target; ++i) {
for (int j = i + 1; j * i <= target; ++j) { // 穷举较小的那个数
if (gcd(i, j) == 1 && i * j == target) { // 如果找到GCD为1且乘积为目标的数对
printf("Closest pair: (%d, %d)\n", i, j);
break; // 找到就退出内层循环
}
}
}
}
int main() {
int target;
printf("Enter the target value: ");
scanf("%d", &target);
if (target <= 1) {
printf("No closet pair exists.\n");
} else {
find_closet_pair(target);
}
return 0;
}
```
这个程序首先定义了一个计算最大公约数的函数`gcd()`,然后在`find_closet_pair()`函数中使用了两层嵌套循环,遍历所有小于目标值的整数对。如果发现某对数的乘积等于目标值,并且它们的最大公约数为1(即互质),则认为找到了亲密数对。
阅读全文