[c语言]每日一练题库----拯救爱情(占卜爱情)

我的代码没进过题目审核,又看到讨论区没有讨论这道题的,

就拿出我的思路来写代码吧,注意,本篇文章仅供参考

题目为:

小艺酱走到一个花之占卜店中。
店员小Q看到小艺酱可怜的样子,允许小艺酱免费占卜一次。
花瓣占卜:
1. 一瓣“在一起”,一瓣“不在一起”;开始的花瓣表示“在一起”。
2. 直到最后一个花瓣落地游戏结束。
3. 可以选择多朵花,选择撕一朵花就必须撕完。

输入描述:

第一行输入花的数量n。(1<=n<=1000)
第二行输入每朵花的花瓣数量。(1<=an<=1e5)

输出描述:

输出小艺酱最多撕下了多少花瓣结果还是在一起。

输入样例:

1
1

输出样例:

1

题目给的源代码,我按照记忆写的(c语言版如下):



#include 
#include 


int solution(int n, int arr[]) {
    int result;

return result;
}


int main() {

    int n;

    int* arr; 
    arr = (int*)malloc(sizeof(int) * n);

   

    int result = solution(n, arr);


    printf("%d", result);


    return 0;
}

我对这道题的源代码如下,理解是小艺选择撕下多少朵花,我们输入每朵花有多少花瓣。最后solution我认为是做花瓣总和的计算,result就是一共撕下多少花瓣。在主函数main为输入撕下的花数量和每朵的花瓣数,调用solution方法。引用中间变量d来判断出花瓣总数result的奇偶性,奇数为不在一起,偶数为在一起。



#include 
#include 
#include 

int solution(int n, int arr[]) {
    int sum=0; //sum要进行初始化才能使用
    int m = n;
    for (int i = 0; i < n; i++)
      {

            printf("请输入第%d朵花的花瓣数量:\n", m);
        scanf_s("%d", &arr[i]);

        printf("输入成功,第%d朵花瓣数量为:%d\n", m,arr[i]);
        sum += n * arr[i];
        
        m--;
    }
return sum;
}


int main() {

    int n; //花的数量
    printf("请输入你要撕下多少朵花:\n");
    scanf_s("%d", &n);

    int* arr; //数组arr是每朵花有多少花瓣
    arr = (int*)malloc(sizeof(int) * n);

   

    int result = solution(n, arr);//奇数代表在一起,偶数代表不在一起
    printf("一共是%d朵花瓣\n", result);

    printf("%d", result);
    int d;
    d = result % 2;
    switch (d) {
    case 0:
        printf("你最后撕下的是偶数片花瓣,所有你和他不在一起");
        break;
    case 1:
        printf("你最后撕下的是奇数片花瓣,所有你和他在一起");
        break;
    default:
        printf("牛皮,你和他在不在一起看你自己");
        break;
    }

    return 0;
}

代码就是这样了,有大佬有更深刻的理解的欢迎在评论区讨论。

你可能感兴趣的:(算法,排序算法,数据结构)