/1.(**)随机产生20个[10 , 100]的正整数,输出这些数以及他们中的最大数.
// int max = 0;
// for (int i = 0; i < 20; i++){
// int num = arc4random() % (100-10+1) + 10;
// max = max > num ? max : num;
// printf("%d ", num);
// }printf("max = %d", max);
//
//2. (**)编程将所有“水仙花数”打印出来,并打印其总个数。 “水仙花数” 是一个 各个位立方之和等于该整数的三位数。
//第二种算法
//用三重循环 分别i, j, k分别代表百位, 十位, 个位
// for (int i = 1; i < 10; i++ ) {
// for (int j = 0; j < 10; i++) {
// for (int k = 0; k < 10, k++;) {
// //求个位方立和
// int sum = i * i * i + j * j * j * + k * k * k;
// //求出该整数
// int result = i * 100 + j * 10 + k;
// //进行判断
// if (sum == result) {
// printf("%d\n", result);
// }
// }
//
//
// int j = 0;
// for (int i = 100; i < 1000; i++) {
// int a = i / 100;
// int b = 1 % 100/10;
// int c = 1 % 10;
// if (a * a * a + b * b * b + c * c * c == i) {
// j++;
// printf("%d ",i);
// printf("\n%d",j);
// }
// }
//3D彩票
//在定义一个循环,用来表示的值
// for ( int l = 0; l < 28; l++){
// //定义一个累加器
// int count = 0;
// for (int i = 0; i < 10; i++) {
// for (int j = 0; j < 10; j++) {
// for (int k = 0; k < 10; k++) {
// //判断和值是否为15
// if (i + j + k == 15) {
// //如果满足,则打印
// printf("%d%d%d\n", i, j, k);
// //累加器开始累加
// count++;
// }
//
// }
//
//
// //计算之后进行输出 (千万不要在负责计算的循环内打印)
// //修改输出语句,将和值位置修改即可
// printf("和值为15的组合共有%2d种\n", l, count);
// }
// }
// 3. (**)已知abc+cba = 1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合
//a 1~9 c 1~9 b 0~9
// for (int a = 1; a < 10; a++) {
// for (int b = 0; b < 10; b++) {
// for (int c = 1; c < 10; c++) {
// if(a * 100 + b * 10 + c + c * 100 + b * 10 + a == 1333)
// {
// printf("%d %d %d\n",a,b,c);
// }
// }
// }
// }
//定义五个整型变量
// int a, b, c, abc, cba;
// printf("满足abc+cba=1333的a, b, c组合为:\n");
// //循环获取百位
// for(a = 0; a <= 9; a++)
// //循环获取十位
// for (b = 0; b <= 9; b++)
//4. (***)输入两个数,求最大公约数和最小公倍数。(用两种方法:辗转相除法和普通方法)
// int m = 0,n = 0;
// scanf("%d%d",&m,&n);
//公约数 对于两个数 8 12, 1,2,4
//最大公约数,公约数里最大的数
//if(m % i == 0 && n % i == 0) i就是公约数
// int min = m < n ? m : n;
// int gcd = 0;
// for (int i = min; i >= 1; i--) {
// if (m % i == 0 && n % i == 0) {
// gcd = i;
// break;
// }
// }
// printf("%d %d",gcd,m * n /gcd);
//辗转相除法
// int m = 0,n = 0;
// scanf("%d%d",&m,&n);
// int a = m,b = n;
// //8 12
// //8 % 12 8
// //12 % 8 4
// //8 % 4 0
//
// //12 8
// //12 % 8 4
// //8 % 4 0
// while (m % n != 0) {
// int temp = m % n;
// m = n;
// n = temp;
// }
// printf("%d %d\n",n,a * b / n);
// 5. (***)一个球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高
//次数 落下 反弹
//1 100 100/2
//2 100/2 100/2/2
//3 100/2/2 100/2/2/2
//...
//10 100/2/2/../2(9) 100/2/2.../2(10)
// float totalDistance = 0;
// float down = 100,up = 100/2;
// for (int i = 1;i < 11; i++){
// totalDistance += down + up;
// down = down / 2;
// up = up / 2;
// }
// totalDistance -= up * 2;
// printf("%.2f up = %.2f",totalDistance,up*2);
// 6. (****)输入n,分别用*输出边长为n的实心菱形和空心菱形
// 7.(****)反复校验用户输入的生日,包括年、月、日。直到年、月、日