牛客网初阶练习(8)

x33g5p2x  于2022-02-11 转载在 其他  
字(1.0k)|赞(0)|评价(0)|浏览(168)

1、筛选法求素数

2、包含数字9的数

3、有序序列判断

1、筛选法求素数

代码:

  1. #include<stdio.h>
  2. #include<malloc.h>
  3. int main()
  4. {
  5. //存储数字
  6. int n = 0;
  7. while (scanf("%d", &n) != EOF)
  8. {
  9. int *p = (int *)malloc(sizeof(int)*n);
  10. for(int i = 0;i<n;i++)
  11. {
  12. p[i] = i+1;
  13. }
  14. //前面的i为列举的除数
  15. for(int i = 2;i<n;i++)
  16. {
  17. for(int j = i;j<n;j++)
  18. {
  19. if(p[j]%i==0)
  20. {
  21. p[j] = 0;
  22. }
  23. }
  24. }
  25. int count = 0;
  26. for (int i = 1; i < n; i++)
  27. {
  28. if (p[i] != 0)
  29. {
  30. printf("%d ", p[i]);
  31. }
  32. else
  33. {
  34. count++;
  35. }
  36. }
  37. printf("\n%d",count);
  38. }
  39. return 0;
  40. }

2、包含数字9的数

代码:

要充分考虑包含数字9的数,包含数字9的数是指某一位是9的数!

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int i = 0;
  5. int count = 0;
  6. for(i = 1;i<2020;i++)
  7. {
  8. int m = i;
  9. while(m)
  10. {
  11. if(m%10==9)
  12. {
  13. count++;
  14. break;
  15. }
  16. m/=10;
  17. }
  18. }
  19. printf("%d",count);
  20. return 0;
  21. }

3、有序序列判断

代码:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int n = 0;
  5. scanf("%d",&n);
  6. int arr[50]= {0};
  7. int flag1=0;//升序
  8. int flag2=0;//降序
  9. for(int i = 0;i<n;i++)
  10. {
  11. scanf("%d",&arr[i]);
  12. if(i>0)
  13. {
  14. if(arr[i]>arr[i-1])
  15. flag1 = 1;
  16. else
  17. flag2 = 1;
  18. }
  19. }
  20. if((flag1+flag2)==1)
  21. {
  22. printf("sorted\n");
  23. }
  24. else
  25. {
  26. printf("unsorted\n");
  27. }
  28. }

相关文章