zoukankan      html  css  js  c++  java
  • 发红包程序

    //设计一个发红包程序,500分5个人分。

    #include <stdio.h>

    #include <stdlib.h>

    #include <time.h>

    int doss(int start, int end) { return rand() % (end - start + 1) + start; }

    /**发红包算法

    把数量是tot(单位是分)的钱随机分k个红包,

    保证每一个红包不少于1分钱,且总数为tot

    */

    void luckyMoney(int a[], int k, int tot) {

      if (tot <= 0 || tot < k) {  //分配失败

        puts("Invalid number!");

        return;

      }

      //红包分配算法,最后一次不用随机避免产生结余

      int i;

      for (i = 0; i < k - 1; i++) {

        a[i] = doss(1, tot - (k - i + 1));

        tot -= a[i];

      }

      a[k - 1] = tot;  //剩余金额直接放入最后一个

      //寻找运气王(第一次找到最大值的序号)

      int maxIndex = 0;

      for (i = 1; i < k; i++)

        if (a[i] > a[maxIndex]) maxIndex = i;

      //格式化输出

      for (i = 0; i < k; i++) {

        printf("%.2f ", a[i] / 100.0);

        if (i == maxIndex) printf("*Luckiest guy!");

        printf(" ");

      }

      printf(" ");

    }

    int main() {

      srand(time(NULL));

      int a[100];

      int tot = 500;

      int n = 5;

      luckyMoney(a, n, tot);

      return 0;

    }

  • 相关阅读:
    数码摄影技巧拍摄的基本概念
    数码相机摄影技巧入门
    linux syslog用法
    委托
    创建遮罩层
    通过javascript获取多种主流浏览器显示页面高度
    sql 工具文件
    正则表达试笔记
    过滤字符串中带的HTML代码
    分页程序
  • 原文地址:https://www.cnblogs.com/eastofeden/p/7376046.html
Copyright © 2011-2022 走看看