• (2014真题)杨辉三角形


    编程输出杨辉三角形(其中,最左边一列和对角线上的元素全部为1,其他元素等于左上角元素和正上方元素的和,例如:10行的杨辉三角形如下图)

    (1)输出10行杨辉三角形

    1. #include
    2. #define M 10
    3. int main(){
    4. void fun1(int a[M][M]);
    5. void fun2(int a[M][M]);
    6. int arr[M][M];
    7. fun1(arr); //给数组赋值
    8. fun2(arr); //输出数组
    9. return 0;
    10. }
    11. void fun1(int a[M][M]) {
    12. for (int i = 0; i < M; i++) {
    13. for (int j = 0; j <= i; j++) {
    14. if (j == 0) {
    15. a[i][j] = 1;
    16. }
    17. else if (i == j) {
    18. a[i][j] = 1;
    19. }
    20. else {
    21. a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
    22. }
    23. }
    24. }
    25. }
    26. void fun2(int b[M][M]) {
    27. for (int i = 0; i < M; i++) {
    28. for (int j = 0; j <= i; j++) {
    29. printf(" %d\t", b[i][j]);
    30. }
    31. printf("\n");
    32. }
    33. }

    (2)对前面的杨辉三角形,计算其中有多少个数的值是大于M行杨辉三角形中所有数值的平均值

    1. int fun3(int c[M][M]) {
    2. int sum = 0; //和
    3. int avg = 0; //平均值
    4. int count1=0; //大于平均值的数的个数
    5. for (int i = 0; i < M; i++) {
    6. for (int j = 0; j <= i; j++) {
    7. sum += c[i][j];
    8. }
    9. }
    10. avg = sum / (M * (M + 1) / 2);
    11. printf("10行杨辉三角形中的所有数的平均值为:%d\n", avg);
    12. for (int i = 0; i < M; i++) {
    13. for (int j = 0; j <= i; j++) {
    14. if (c[i][j] > avg) {
    15. count1 += 1;
    16. }
    17. }
    18. }
    19. return count1;
    20. }

    完整代码:

    1. #include
    2. #define M 10
    3. int main(){
    4. void fun1(int a[M][M]);
    5. void fun2(int a[M][M]);
    6. int fun3(int a[M][M]);
    7. int arr[M][M];
    8. fun1(arr); //给数组赋值
    9. fun2(arr); //输出数组
    10. int count=fun3(arr); //计算有多少个数大于平均值
    11. printf("共有%d个数的值大于10行杨辉三角形中的所有数的平均值\n", count);
    12. return 0;
    13. }
    14. void fun1(int a[M][M]) {
    15. for (int i = 0; i < M; i++) {
    16. for (int j = 0; j <= i; j++) {
    17. if (j == 0) {
    18. a[i][j] = 1;
    19. }
    20. else if (i == j) {
    21. a[i][j] = 1;
    22. }
    23. else {
    24. a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
    25. }
    26. }
    27. }
    28. }
    29. void fun2(int b[M][M]) {
    30. for (int i = 0; i < M; i++) {
    31. for (int j = 0; j <= i; j++) {
    32. printf(" %d\t", b[i][j]);
    33. }
    34. printf("\n");
    35. }
    36. }
    37. int fun3(int c[M][M]) {
    38. int sum = 0; //和
    39. int avg = 0; //平均值
    40. int count1=0; //大于平均值的数的个数
    41. for (int i = 0; i < M; i++) {
    42. for (int j = 0; j <= i; j++) {
    43. sum += c[i][j];
    44. }
    45. }
    46. avg = sum / (M * (M + 1) / 2);
    47. printf("10行杨辉三角形中的所有数的平均值为:%d\n", avg);
    48. for (int i = 0; i < M; i++) {
    49. for (int j = 0; j <= i; j++) {
    50. if (c[i][j] > avg) {
    51. count1 += 1;
    52. }
    53. }
    54. }
    55. return count1;
    56. }

    运行结果:

  • 相关阅读:
    LeetCode 1004.最大连续1的个数
    高级java每日一道面试题-2024年7月14日
    .net core/5/6/7中WPF如何优雅的开始开发
    cesium文字实现避让功能
    2022-5月报
    Java版ORM最初雏形
    文件系统(三):嵌入式、计算机系统启动流程与步骤
    Java设计模式:Callback
    how to alert when etl inbound file delay in GCP storage
    C#面:简单介绍 序列化 和 反序列化
  • 原文地址:https://blog.csdn.net/m0_62314267/article/details/136857611