Problem 1 整数逆序 问题描述: 1 输入一个整数n,求他的逆序数。例如输入12000,则输出逆序数21
输入描述: 输出描述: 样例输入: 样例输出: 思路分析: 很明显,这题的整数是包含负整数,零和正整数 ,但是这并不影响我们去处理它。
这题思路很简单,拆分倒序重组 就可以了
代码实现: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <stdio.h> int main () { int after; int change = 0 ; scanf ("%d" , &after); while (after!=0 ) { change = change*10 +after%10 ; after /= 10 ; } printf ("%d\n" , change); return 0 ; }
Problem 2 最值及平均数 问题描述: 1 输入n个整数,找出其中的最小值和最大值,并计算此n个数的平均值,输出他们
输入描述: 1 第1行:一个正整数n(n<=12)第2行:n个整数(可正可负,均不超过int范围)
输出描述: 1 共3行,第一行输出n个整数的平均值(保留2位小数),第二行输出最小值,第三行输出最大值。
样例输入: 样例输出: 思路分析: 这道题没什么好分析的,主要就是循环找最大值与最小值 并且求平均数
代码实现: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include <stdio.h> int main () { int n, data, max, min; double sum = 0 , avg; scanf ("%d" , &n); for (int i = 0 ; i < n; i++) { scanf ("%d" , &data); if (i==0 ) { max=data; min=data; } else { if (data > max) max = data; if (data < min) min = data; } sum += data; } avg = sum/n; printf ("%.2lf\n%d\n%d\n" , avg, min, max); return 0 ; }
Problem 3 求满足条件的n 问题描述: 1 公式s(n)=1^2+2^2+···+n^2,对于给定的正整数,求满足条件的最大整数n,使得s(n)<=m,s(n+1)>=m
输入描述: 输出描述: 样例输入: 样例输出: 思路分析: 这道题简单的写法,就是循环找数 ,只要满足这个条件,就跳出循环
代码实现: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <stdio.h> int main () { int m, sum = 0 , n = 1 ; scanf ("%d" , &m); while (sum <= m) { sum += n*n; if (sum + (n+1 )*(n+1 ) >= m) break ; n++; } printf ("%d\n" , n); return 0 ; }
Problem 4 猴子吃桃问题 问题描述: 1 猴子第一天摘下若干个桃子,当天吃了一半,后面又多吃一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。后面每天猴子都吃了前一天剩下的一半零一个。到第N天想再吃时,只剩下一个桃子。求第一天共摘了多少桃子。
输入描述: 输出描述: 样例输入: 样例输出: 思路分析: 这道题是改编题:头哥实践教学平台-猴子吃桃问题 (PS: 需要登陆)
这题的计算思路是 s(n) = s(n-1)/2-1 ,可知s(n-1)=(s(n)+1)x2 ,只要循环逆推到第一天就得到结果了
代码实现: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include <stdio.h> int main () { int n, sum = 1 ; scanf ("%d" , &n); for (int i = 0 ; i < n - 1 ; i++) { sum = (sum+1 )*2 ; } printf ("%d" , sum); return 0 ; }
Problem 5 累加求和算 问题描述: 1 根据公式PI/2=1+1/3+1/3x2/5+1/3x2/5x3/7+1/3x2/5x3/7x4/9+···+1/3x···xn/(2n+1)计算PI的值。例如,当n为1时,根据公式计算的结果为2.6667
PS: PI= 文本框里无法输入这个符号
输入描述: 1 一个正整n(1<=n<=10000),n代表公式中除1以外求和项的个数。
输出描述: 样例输入: 样例输出: 思路分析: 很明显,每一项是非常符合规律的,可以看作**a0=1,a1=a0x1/3, a2=a1x2/5,····,an=an-1xn/(2n+1), /2=a0+a1+a2+a3+···+an**按照这个思路我们就可以很好的解决这个题了
代码实现: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <stdio.h> int main () { double PI = 1 , n, a = 1 ; scanf ("%lf" , &n); for (int i = 1 ; i <= n; i++) { a=a*i/(2.0 *i+1.0 ); PI += a; } PI*=2 ; printf ("%.4lf\n" , PI); return 0 ; }