2022编程新篇章 2021-12-19 21:26 采纳率: 71.4%
浏览 20
已结题

c++,很简单我却不会(数组标记)

小明和小强各有十张纸币。纸币面值有六种:100 50 20 1 5 1。小明
先给小强一张纸币,接着小强在已有的11张里给小明一张。请问经过两次交换后,小明手中的
总面额有多少种不同的可能。
【输入说明】
输入两行,第一行为小明手上十张纸币的面值,第一行为小强手上十张纸币的面值。
【输出说明】
输出两次交换后,小明手中的总面额有多少种不同的可能。
【输入样例】
1 1 1 1 1 1 1 1 1 10
5 5 5 5 5 5 5 5 5 20
【输出样例】
5
【样例说明】
两次交换后,小明手中的总面额有19 38 23 29 14五种可能

  • 写回答

1条回答 默认 最新

  • 藏猊 2021-12-20 12:00
    关注
    #define N 10
    int main() {
        /*int a[N] = { 1,1,1,1,1,1,1,1,1,10 }, b[N + 1] = { 5,5,5,5,5,5,5,5,5,20 };*/
        int a[N], b[N + 1];
        int c[N * N] = { 0 };
        int num = 0;
        int kind = 0;
        int l = 0;
        for(int i=0;i<N;i++)
            std::cin >> a[i];
        for (int i = 0; i < N; i++)
            std::cin >> b[i];
        for (int i = 0; i < N; i++) {
            b[N] = a[i];
            for (int j = 0; j < N+1; j++) {
                /*a[i] = b[j];*/
                for (int k = 0; k < N; k++) {
                    if (k == i)
                        num += b[j];
                    else
                        num += a[k];
                }
                for (l = 0; l < kind; l++) {
                    if (num == c[l]) {
                        break;
                    }
                }
                if (c[l] == 0) {
                    c[kind] = num;
                    kind++;
                }
                num = 0;
            }
        }
        /*for (int i = 0; i < kind; i++) {
            std::cout << c[i]<<" ";
        }*/
        std::cout << kind;
    }
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月30日
  • 已采纳回答 12月22日
  • 创建了问题 12月19日

悬赏问题

  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)