C语言用穷举法写猜数字代码
时间: 2023-05-19 19:05:34 浏览: 73
以下是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 语言穷举法求最大公约数
C语言中求最大公约数的穷举法可以通过以下代码实现:
```
#include <stdio.h>
int main()
{
int num1, num2, i, gcd;
printf("Enter two numbers: ");
scanf("%d %d", &num1, &num2);
for(i=1; i<=num1 && i<=num2; i++)
{
if(num1%i==0 && num2%i==0)
gcd = i;
}
printf("GCD of %d and %d is %d", num1, num2, gcd);
return 0;
}
```
在这个程序中,我们首先输入两个数字,然后使用for循环从1到两个数字中较小的那个数字进行迭代。如果两个数字都可以被当前迭代的数字整除,则将该数字赋值给gcd变量。最后输出gcd即为最大公约数。
用C语言有一个三位数,个位数字比百位数字大,而百位数字又比十位数字大, 并且各位数字之和等于各位数字相乘之积。设计一个算法用穷举法求此三位数。
好的,这是一个不错的算法问题。根据题目要求,我们可以得到以下条件:
1. 三位数:范围为100-999;
2. 个位数字比百位数字大:个位数字在10-99之间;
3. 百位数字比十位数字大:百位数字在110-990之间;
4. 各位数字之和等于各位数字相乘之积:设该三位数为ABC,则有A+B+C=ABC。
基于以上条件,我们可以设计一个穷举法的算法:
```
#include <stdio.h>
int main() {
int num;
int a, b, c;
// 穷举所有符合条件的三位数
for (num = 100; num < 1000; num++) {
a = num / 100; // 百位数字
b = (num / 10) % 10; // 十位数字
c = num % 10; // 个位数字
// 判断是否符合要求
if (a > b && b > c && a + b + c == a * b * c) {
printf("%d\n", num); // 输出符合条件的三位数
}
}
return 0;
}
```
以上代码中,我们先穷举所有符合条件的三位数,然后依次计算出它的百位数字、十位数字和个位数字。接着,我们判断该三位数是否符合条件,若符合则输出该数。最后,我们得到所有符合条件的三位数。
希望这个算法可以帮助到你。