C语言经典编程282例07 | 您所在的位置:网站首页 › c语言经典编程282例源码 › C语言经典编程282例07 |
036 小球下落问题
一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第十次反弹多高? 小球从100米高处自由下落,第一次落地时经过100米,这个需单独考虑,从第一次弹起到第二次落地前经过的路程为前一次的高度的一半×2,加上前面弹起的路程——因为每次都有弹起和下落两个过程。 任意输入32位的二进制数,编程实现将该二进制数转换成IP地址形式: 如: 输入: 11111111 11111111 11111111 11111111 11111111 输出: 255.255.255.255 #include #include #include #include #include int bin_dec(int x, int n) { if(n == 0) { return 1; } return x * bin_dec(x, n-1); } main() { int i, j, ip[4]= {0}; char a[33]; scanf("%s", a); for(i = 0; i ip[0] += bin_dec(2, 7 - i); } } for(i = 8; i ip[1] += bin_dec(2, 15 - i); } } for(i = 16; i ip[2] += bin_dec(2, 23 - i); } } for(i = 24; i ip[3] += bin_dec(2, 31 - i); } if(a[i] == '\0') { break; } } printf("%d . %d . %d . %d", ip[0], ip[1], ip[2], ip[3]); printf("\n"); }//调用函数不同 #include #include #include #include #include int bin_dec(int x, int n) { if(n == 0) { return 1; } return pow(2, n); } main() { int i, ip[4] = {0}; char a[33]; scanf("%s", a); for(i = 0; i ip[0] += bin_dec(2, 7 - i); } } for(i = 8; i ip[1] += bin_dec(2, 15 - i); } } for(i = 16; i ip[2] += bin_dec(2, 23 - i); } } for(i = 24; i ip[3] += bin_dec(2, 31 - i); } if(a[i] == '\0') { break; } } printf("%d . %d . %d . %d", ip[0], ip[1], ip[2], ip[3]); printf("\n"); } 040 特殊的完全平方数在3位整数100 ~ 999 中查找符合如下条件的整数并在屏幕上:这个数既是完全平方数,又有2个数字相同,如121(11的平方)、144(12的平分)。 有这样一个6位数,它本身是一个整数的平分,其高三位和低三位也分别是一个整数的平分,如 225625 = 475的平分,求满足上诉条件的所有6位数。 sqrt函数的返回值是一个double,若将开平分后得到的小数其小数点后的部分为0,则将其强制转换为其他整型也不会产生数据的流失。 // —————————————————————— 官方 ——————————————————————————— #include #include #include #include #include main() { long i, n, n1, n2, n3, n4, count = 0; printf("这样的数有:\n"); for(i= 100000; i n1 = i / 1000; n2 = i % 1000; n3 = (long) sqrt(n1); n4 = (long) sqrt(n2); if(n1 == n3 *n3 && n2 == n4 * n4) { count++; printf("%5d\n", i); } } } printf("\n满足条件有%d个\n", count); printf("\n"); } // —————————————————————————— ME ———————————————————— #include #include #include #include #include main() { int i, j, num; int hun, ten, data; float s_l, s_h, s; for(num= 100000; num j++; //计算个数 printf("%5d\n", num); } } printf("一共%d个\n", j); printf("\n"); } 042 求等差数列老师给学生由前向后发糖果,每个学生得到的糖果数目成等差数列,前4个学生得到的糖果数目之和是26,积是880,编程前29名学生每个人得到的糖果数目。 一些知识点回顾: 看常用数据类型https://blog.csdn.net/qq_41070511/article/details/110523111 |
CopyRight 2018-2019 实验室设备网 版权所有 |