我如何显示在第 8 个基数(数字基数 8?)中具有 4 位表示的所有数字?
How do i show all numbers that have a 4 digit representation in the 8th base(numerical base 8?)?
如果我知道如何做到这一点,我会在这里放一个代码。但是,我只有数字基数的代码:
using namespace std;
int n,i,s,rest,cat;
int main()
{
cin>>n;
s=0;
i=1;
while(n>0)
{
rest=n%8;
cout<<"rest: "<<endl<<rest<<endl;
cat=n/8;
cout<<"cat: "<<endl<<cat<<endl;
s=s+rest*i;
cout<<"s: "<<endl<<s<<endl;
i=i*10;
cout<<"i: "<<endl<<i<<endl;
n=cat;
}
cout<<"s="<<s;
return 0;
}
4位八进制数中最小的数是多少?八进制中4位数字表示的最大数是多少?您可以手动解决这个问题,然后遍历这些值。
纸面上:
1000_(base8) = X_(base10) // solve for X
7777_(base8) = Y_(base10) // solve for Y
然后在你的代码中,在这两个数字之间循环。这将输出八进制 1000 和八进制 7777(含)之间的所有数字的 octal 形式。
std::cout << std::oct; // set all integer outputs on std::cout to octal
for (unsigned int i = X; i <= Y; i++)
std::cout << i << "\n";
std::cout << std::dec; // set it back to decimal
您需要 #include <iomanip>
才能使用流格式说明符 std::oct
。
如果你想让你的程序从一个字符串中计算出一个任意的八进制数,你可以使用std::stoull
。这给出了表示八进制 1000 的无符号整数:
int X = std::stoul("1000", 0, 8);
如果你要用数学,那么你可以认出最小的base-n
占m
位数的数是n**(m-1)
,其中**
代表求幂(除了在你有一个 1 位数字的边缘情况下,在这种情况下,可以表示的最小数字是 0
).
占m
位数的最大base-n
数是(n**m) - 1
.
计算指数时,您可能会想使用 pow
。不要那样做。那是针对浮点数的。使用循环计算整数 n**m
。
如果我知道如何做到这一点,我会在这里放一个代码。但是,我只有数字基数的代码:
using namespace std;
int n,i,s,rest,cat;
int main()
{
cin>>n;
s=0;
i=1;
while(n>0)
{
rest=n%8;
cout<<"rest: "<<endl<<rest<<endl;
cat=n/8;
cout<<"cat: "<<endl<<cat<<endl;
s=s+rest*i;
cout<<"s: "<<endl<<s<<endl;
i=i*10;
cout<<"i: "<<endl<<i<<endl;
n=cat;
}
cout<<"s="<<s;
return 0;
}
4位八进制数中最小的数是多少?八进制中4位数字表示的最大数是多少?您可以手动解决这个问题,然后遍历这些值。
纸面上:
1000_(base8) = X_(base10) // solve for X
7777_(base8) = Y_(base10) // solve for Y
然后在你的代码中,在这两个数字之间循环。这将输出八进制 1000 和八进制 7777(含)之间的所有数字的 octal 形式。
std::cout << std::oct; // set all integer outputs on std::cout to octal
for (unsigned int i = X; i <= Y; i++)
std::cout << i << "\n";
std::cout << std::dec; // set it back to decimal
您需要 #include <iomanip>
才能使用流格式说明符 std::oct
。
如果你想让你的程序从一个字符串中计算出一个任意的八进制数,你可以使用std::stoull
。这给出了表示八进制 1000 的无符号整数:
int X = std::stoul("1000", 0, 8);
如果你要用数学,那么你可以认出最小的base-n
占m
位数的数是n**(m-1)
,其中**
代表求幂(除了在你有一个 1 位数字的边缘情况下,在这种情况下,可以表示的最小数字是 0
).
占m
位数的最大base-n
数是(n**m) - 1
.
计算指数时,您可能会想使用 pow
。不要那样做。那是针对浮点数的。使用循环计算整数 n**m
。