Ability To Convert


Ability To Convert

 

Alexander is learning how to convert numbers from the decimal system to any other, however, he doesn't know English letters, so he writes any number only as a decimal number, it means that instead of the letter A he will write the number 10. Thus, by converting the number 475 from decimal to hexadecimal system, he gets 11311 (475 = 1·162 + 13·161 + 11·160). Alexander lived calmly until he tried to convert the number back to the decimal number system.

Alexander remembers that he worked with little numbers so he asks to find the minimum decimal number so that by converting it to the system with the base n he will get the number k.

Input

The first line contains the integer n (2 ≤ n ≤ 109). The second line contains the integer k (0 ≤ k < 1060), it is guaranteed that the number k contains no more than 60symbols. All digits in the second line are strictly less than n.

Alexander guarantees that the answer exists and does not exceed 1018.

The number k doesn't contain leading zeros.

Output

Print the number x (0 ≤ x ≤ 1018) — the answer to the problem.

Example
Input
13
12
Output
12
Input
16
11311
Output
475
Input
20
999
Output
3789
Input
17
2016
Output
594
Note

In the first example 12 could be obtained by converting two numbers to the system with base 1312 = 12·130 or 15 = 1·131 + 2·130.


进制转换 将N进制的数转化为十进制,让你求最小的数

贪心 每次都取可能大的数,这样最后的结果最小

要注意前导零


#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
long long n,ans;
int l;
string k;

long long powx(long long x,int y)
{
    if(y==0)return 1;
    long long s=powx(x,y/2);
    if(y%2)return s*s*x; 
    else return s*s;
}

int main()
{
    scanf("%lld",&n);
    long long t=n;
    while(t>0)
    {
        t/=10;
        l++;
    }
    cin>>k;

    int p=0,v=0,last=k.size()-1;
    long long sum=0;
    for(int i=k.size()-1;i>=0;i--)
    {
        long long t=sum;
        sum+=powx(10,v)*(k[i]-48);
        if(sum<n && v<l)v++;
        else
        {
            int kkk=i;
            if(k[i+1]=='0')
            {
                int ss=0;
                while(k[++i]=='0')
                {
                    ss++;
                    if(i==last)break;
                }
                i--;
            }
            ans+=powx(n,p)*t;
            sum=k[i]-48;
            v=1;
            p++;
            last=i;
        }
    }
    ans+=powx(n,p)*sum;
    printf("%lld\n",ans);
    return 0;
}





This assessment aims to assess your ability to use Node-RED for data acquisition, processing, and presentation. You will create a flow that reads temperature and humidity data from a DHT11 sensor, formats it into a user-friendly presentation, and displays it with timestamps. You will then document the process in a clear and concise manner using Markdown language. Requirements: 1. Flow Creation: o Create a Node-RED flow that utilises the following nodes: ▪ An Inject node to trigger the flow periodically. ▪ A dht_emu node to emulate a DHT11 sensor and capture temperature and humidity readings. ▪ A Function node to process and format the sensor data for display. ▪ Two Debug nodes to display the formatted temperature and humidity readings separately. 2. Node Configuration: o Configure the Inject node to trigger the flow every 5 seconds. o Configure the dht_emu node to emulate a DHT11 sensor and select the appropriate GPIO pin for your setup. o Configure the Function node to process the sensor data as follows: ▪ Extract the temperature and humidity data from the incoming message. ▪ Convert the temperature and humidity values to strings. ▪ Format the temperature string as "Temperature: [value]°C" and the humidity string as "Humidity: [value]%". ▪ Send the formatted temperature and humidity strings to separate outputs. 3. Flow Connections: o Connect the nodes to ensure the data flows from the sensor to the function node for formatting and then to the debug nodes for display. 4. Documentation: o Using the Markdown template provided, document the steps in creating and configuring this flow. o Provide clear and concise explanations for each step, including the rationale behind the configurations. o Ensure your documentation is easy to understand and follow, even for someone without Node-RED experience.
最新发布
08-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值