gpt4 book ai didi

binary - 查找给定输入 -n 的最小二进制十进制数。

转载 作者:行者123 更新时间:2023-12-01 23:22:25 25 4
gpt4 key购买 nike

如果数字中的所有数字都应为“1”或“0”,则该数字称为二进制十进制。任何数字都可以写成二进制十进制之和。我们的任务是找到表示一个数字的最小数量的二进制小数。

输入:32输出:10 11 11

输入:120输出:10 110

什么是有效的解决方案?

最佳答案

举个例子

54321答案是

11111

11110

11100

11000

10000

因此将其视为 m*n 矩阵,其中 m 是给定数字中数字的最大值,n 是数字位数。然后用与该列对应的数字值相等的 1 的数量填充各列,其余的用 0 填充。

        #include<iostream>

using namespace std;
int max(int arr[],int c)
{
int max=arr[0];
for(int i=1;i<c;i++){
if(arr[i]>max){
max=arr[i];
}
}
return max;
}
int main() {
int n,x,c=0,i=0,j=0;
cin>>n;
x=n;
while(n!=0){
n=n/10;
c++;
}
int *a=new int[c];

while(x!=0){
a[i]=x%10;
x=x/10;
i++;
}
int r=max(a,c);
int ans[r][c];
for(int i=0;i<c;i++)
{
for(int j=0;j<r;j++)
{
if(a[c-i-1]!=0){
ans[j][i]=1;
a[c-i-1]--;
}
else
ans[j][i]=0;
}
}
for(i=0;i<r;i++){
for(j=0;j<c;j++){
cout<<ans[i][j];
}
cout<<"\n";
}

}

关于binary - 查找给定输入 -n 的最小二进制十进制数。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39509271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com