给定一个正整数N,将其表示为数字1,3,7,15相加的形式输出。请编码找出使上述数字出现的总次数最少(每个数字可以重复使用)的组合。

简介: 给定一个正整数N,将其表示为数字1,3,7,15相加的形式输出。请编码找出使上述数字出现的总次数最少(每个数字可以重复使用)的组合。

给定一个正整数N,将其表示为数字1,3,7,15相加的形式输出。请编码找出使上述数字出现的总次数最少(每个数字可以重复使用)的组合。

  • 输入说明:一个正整数N(N<=10000)。
  • 输出说明:正整数N由1,3,7,15组成的加法表达式,左侧是N,之后是’=‘号,’='右侧是数字加和的形式,要求非递增排列。
  • 举例:
    输入:17
    输出:17=15+1+1
#include <iostream>
using namespace std;
int main()
{
    int N;
    cin >> N;
    int a = N / 15;
    int b = (N - a * 15) / 7;
    int c = (N - a * 15 - b * 7) / 3;
    int d = N - a * 15 - b * 7 - c * 3;
    string str;
    while (a > 0)
    {
        str += "15+";
        a -= 1;
    }
    while (b > 0)
    {
        str += "7+";
        b -= 1;
    }
    while (c > 0)
    {
        str += "3+";
        c -= 1;
    }
    while (d > 0)
    {
        str += "1+";
        d -= 1;
    }
    str.erase(str.length() - 1);
    cout << N << "=" << str;
    return 0;
}

演示截图:

注:

相关文章
|
6月前
|
PHP
在数组中,找出给定数字的出现次数,比如[1,2,3,2,2]中2的出现次数是3次(任意编程语言描述)
在数组中,找出给定数字的出现次数,比如[1,2,3,2,2]中2的出现次数是3次(任意编程语言描述)
42 0
|
6月前
|
C++
[C++] 提取字符串中的所有数字并组成一个数
[C++] 提取字符串中的所有数字并组成一个数
138 0
|
6月前
对任意给定的两个正整数,100<n<m<1000,计算这两个数之间所有素数和,包含m,n自身
对任意给定的两个正整数,100<n<m<1000,计算这两个数之间所有素数和,包含m,n自身
50 0
对任意给定的两个正整数,100<n<m<1000,计算这两个数之间所有素数和,包含m,n自身
|
6月前
|
Java
JAVA输入任意一个数字,实现递减求和(计算任意整数n的和)
JAVA输入任意一个数字,实现递减求和(计算任意整数n的和)
58 0
|
6月前
字符串,每个里面包含0-N个数字,如3,8,2,编写函数,将两个这样的字符串合并,并且输出的字符串里面没有重复的数字,并从大到小排列.
字符串,每个里面包含0-N个数字,如3,8,2,编写函数,将两个这样的字符串合并,并且输出的字符串里面没有重复的数字,并从大到小排列.
35 0
|
11月前
|
BI
输入正整数 转化为 二进制数输出
输入正整数 转化为 二进制数输出
107 0
|
算法 Python
一日一技:如何统计一个数字的二进制值里面有多少个1
一日一技:如何统计一个数字的二进制值里面有多少个1
238 0
|
Java 测试技术
Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3
Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3
212 0
Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3
|
算法
如何在不把数字转为字符串的前提下反转数字
算法问题:如何在不把数字转为字符串的前提下反转数字
65 0
C/C++编程题之提取不重复的整数
C/C++编程题之提取不重复的整数