#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
/*
int a1;
printf("请输入一个整数:");
scanf("%d",&a1);
if (a1 % 2 == 0) {
printf("%d是偶数\n",a1);
}else{
printf("%d是奇数\n",a1);
}
*/
//2
/*
int a = 18,b = 16,c = 24;
//条件运算符(三目运算符)表达式 ?值一 :值二,如果表达式的结果为真,则取值一,表达式结果为假则取值二
//max = a > b ? a:b;
//max = max > c ? max :c;
if (a>b) {
if (a>c) {
printf("%d",a);
}else{
printf("%d",c);
}
}else{
if (b > c) {
printf("%d",b);
}else{
printf("%d",c);
};
}
*/
//3
/*
int a2;
printf("请输入一个年数:");
scanf("%d",&a2);
if ((a2 % 4 == 0 && a2 % 100 != 0 )|| (a2 % 400 == 0)) {
printf("%d是闰年",a2);
}else {
printf("%d不是闰年",a2);
}*/
//4
/*
int a3,b3,c3;
scanf("%d %d %d",&a3,&b3,&c3);
printf("q请输入三个数:");
if ((a3+b3>c3)&&(a3+c3>b3)&&(b3+c3>a3)&&a3>0&&b3>0&&c3>0) {
printf("%d %d %d",a3,b3,c3);
printf("可以构成三角形");
}else{
printf("不可以构成三角型");
}
*/
//5
/*
int a4;
float money;
printf("请输入一个托运数:");
scanf("%d",&a4);
if(a4 <= 50){
money = a4 * 0.15;
printf("%f",money);
}else{
money = 50 * 0.15 + (a4 - 50) * (0.1+0.15);
printf("%.2f\n",money);
}
*/
//6水仙花数
/*
int count = 0;//记录水仙花数
for (int a5=1; a5 <= 9; a5++) {
for (int b5 = 0; b5 <= 9; b5 ++) {
for (int c5 = 0; c5 <= 9; c5++) {
if ((a5 * 100 + b5 * 10 + c5) == (a5*a5*a5 + b5*b5*b5 + c5*c5*c5 )) {
printf("%d\n",a5 * 100 + b5 * 10 + c5);
count++;
}
}
}
}
printf("水仙花个数%d\n",count);
*/
//7.1辗转相除法
//概念:最大公约数:两个数a,b,先求出a和b的余数,如果余数不为0,则把b的值给a,余数的值给b,然后继续a和b的余数。重复该操作,知道余数为0,注意:此时b中储存的就是最大公约数、
/*
//最小公倍数:两个数的乘积/最大公约数
int num1 = 24,num2 = 12;
//为了提取最小公倍数,要将原始的值保持
int number1 = num1,number2 = num2;
//求出两个数的余数
int temp = number1 % number2;
//判断余数的值,并且重复操作
while (temp != 0){
number1 = number2;
number2 = temp;
temp = number1 % number2 ;
}
int tempNum = num1 * num2 / number2;
printf("最大公约数是:%d,最小公倍数是:%d\n",number2,tempNum);
*/
/*
int i,j;
printf("请输入两个数:");
scanf("%d %d", &i ,&j);
int k = i % j ;
int s = i * j;
while (k != 0) {
i = j;
j = k;
k = i % j;
}
printf("最大公约数为%d",j);
printf("最小公倍数为%d",s/j);
*/
//7.2
//普通方法
//最大公约数:从两个数中最小的开始往下遍历,到一为止,依次判断能被两个数同时整除,满足条件的第一个数就是最大公约数。
//最小公倍数:从两个数中的最大值开始往上遍历,直到两个数的乘积为止,依此判断是否能同时整除两个数,满足此条件的第一个数就是最小公倍数。
//求最大公约数
int n = 34,m = 98;
int min = n < m ? n : m;
for (int i = min; i >= 1; i--) {
if (n % i == 0 && m % i == 0) {
printf("最大公约数为:%d\n",i);
//注意:找到最大公约数结束循环
break;
}
}
//求最小公倍数
int maxValue = n > m ? n : m ;
for (int i = maxValue; i <= n * m ; i ++) {
if (i % n == 0 && i % m == 0) {
printf("最小公倍数为:%d\n",i);
break;
}
}
/*
int m,n;
printf("请输入两个数:");
scanf("%d %d", &m ,&n);
int l = m * n;
while (m != n) {
if (m > n) {
m = m - n ;
}else{
n = n - m;
}
}
printf("最大公约数为%d",n);
printf("最小公倍数为%d",l/n);
*/
return 0;
}
oc习题合集一
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 怎样反思自己的教学——学习杜威《我们怎样思维》有感 2015-01-13 14:56:52 来源:普宁市第三中学网...