1.输入两个正整数m和n,求其最大公约数和最小公倍数
定义两个整型值分别为max和min,首先判断这两个数谁大谁小,最大公约数可以理解为两个数字都对同一个数字取余为零,而最大公倍数可以理解为从数字1开始一直尝试与两个数中的最小值乘积不断的对最大值取余,取余结果如果0,则代表成功时的数字和最小值的乘机则为两个数字的最小公倍数。
#include<stdio.h>
int main()
{
int num1 = 15;
int num2 = 25;
int max = num1 >= num2 ? num1 : num2;
int min = num1 <= num2 ? num1 : num2;
for (int i = min; i > 0; i--)
{
if (num1 % i == 0 && num2 % i == 0) {
printf("最大公约数为:%d\n", i);
}
}
for (int i = 1; i <= num2; i++)
{
if (i * min % max == 0) {
printf("最小公倍数为:%d\n", i * num1);
break;
}
}
return 0;
}
运行结果为:
2.猴子吃桃问题。
猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。
#include<stdio.h>
int peach() //形式参数列表
{
int sum = 1;
for (int i = 10; i > 1; i--) //函数的功能
{
sum = (sum + 1) * 2;
}
return sum;
}
int main() //函数入口
{
int count = peach(); //调用函数的功能 函数调用处 函数名+实参
printf("%d\n", count);
}
运行结果为:
3.输入一个小于1000的正数,要求输出它的平方根
从键盘输人一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。直到输入数据<1000 输出结果平方根
# include <stdio.h>
# include <math.h>
int main()
{
int x, y;
printf("请输入一个小于1000的正整数:");
scanf_s("%d", &x);
printf("%d\n", x);
if (x > 1000) {
printf("请重新输入:");
scanf_s("%d", &x);
}
y = sqrt(x);
printf("%d平方根为:%d", x, y);
return 0;
}
运行结果为从键盘上输入64得到: