- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以有一个挑战,你必须编写一个代码,将 0-999 之间的数字拆分成数字,而不使用字符串或除以 10。我已经很努力了,但无法想出完美的算法.我的代码用于拆分数字 1-99,但我真的认为有一些更好的选择而不使用 111 if 语句。好的,这就是我得到的:
#include <iostream>
int main() {
std::cout << "Enter a number ";
int number;
std::cin >> number;
int cycles;
if (number > 100) {
cycles = 3;
}
else if (number > 10) {
cycles = 2;
}
else {
cycles = 1;
}
int digit[] = { -1, -1, -1 };
for (int i = 0; i < cycles; i++) {
if (number < 10) {
digit[0] = number;
}
else if (number < 100) {
if (number < 20) {
digit[1] = number - 10;
number = 1;
}
else if (number < 30) {
digit[1] = number - 20;
number = 2;
}
else if (number < 40) {
digit[1] = number - 30;
number = 3;
}
else if (number < 50) {
digit[1] = number - 40;
number = 4;
}
else if (number < 60) {
digit[1] = number - 50;
number = 5;
}
else if (number < 70) {
digit[1] = number - 60;
number = 6;
}
else if (number < 80) {
digit[1] = number - 70;
number = 7;
}
else if (number < 90) {
digit[1] = number - 80;
number = 8;
}
else {
digit[1] = number - 90;
number = 9;
}
}
else if (number < 1000) {
if (number < 200) {
number -= 100;
}
else if (number < 300) {
number -= 200;
}
else if (number < 400) {
number -= 300;
}
else if (number < 500) {
number -= 400;
}
else if (number < 600) {
number -= 500;
}
else if (number < 700) {
number -= 600;
}
else if (number < 800) {
number -= 700;
}
else if (number < 900) {
number -= 800;
}
else {
number -= 900;
}
}
}
for (int i = 0; i < 3; i++) {
if (digit[i] != -1) {
std::cout << digit[i] << " ";
}
}
std::cout << "\n";
std::cout << "Press any key to exit... ";
char i;
std::cin >> i;
return 0;
}
我被卡住了,所以如果有人能够帮助我,我将不胜感激!
最佳答案
问题基本上归结为,如何在不使用除法运算符的情况下实现除法运算符。由于可能性非常有限,即当测试每个数字时,只有 10 种可能的结果 0-9,一个简单的解决方案是遍历所有这些结果。您可以对每个都使用乘法,但稍微快一点的方法是迭代可能的答案。因此,一个以基数(1,10 或 100)为基础的简单函数和您要拆分的数字将是
int getDigit(int base, int number) {
int digit = 0;
for (int i = base;i <= number;i += base) ++digit;
return digit;
}
此函数仅在 number < 10*base 时有效。所以你需要从最大的数字开始。然后从数字中减去 base*digit 并重复,直到你遍历所有数字。
关于c++ - 不使用字符串也不除以 10 的数字到数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33203044/
你有没有注意到 Excel Vba 代码中除法 2/60 的问题?我正在使用 Excel 2013。请测试以下代码: Sub test1() Dim A As Integer Dim B As Int
我正在运行长时间的模拟。我将结果记录到 vector 中以计算有关数据的统计信息。我意识到,理论上,这些样本可能是除以零的结果。这只是理论上的,我很确定事实并非如此。为了避免修改代码后重新运行模拟,我
我有一些可以包含字母、数字和“#”符号的字符串。 我想删除除以“#”开头的单词以外的数字 下面是一个例子: "table9 dolv5e #10n #dec10 #nov8e 23 hello" 预期
我有以下代码,问题是我尝试将 Double 除以 Int factorial :: Int -> Int factorial 0 = 1 factorial e = e * (factorial e-
我有以下查询,它试图计算出某种产品占产品总数的百分比。 IE:[产品数量]/[产品总数] = 百分比 ;WITH totalCount AS( SELECT CAST(COUN
我正在解析字符串,然后需要将其转换为数字。但如果它包含除以 0 的例子 String str1 = "1+2+3-5/0+4+6" String str2 = "1+2+3-4/0.000 +4+6"
这个问题已经有答案了: Right Shift to Perform Divide by 2 On -1 (6 个回答) 已关闭 9 年前。 在阅读 Collections.reverse 的 Jav
我是 C++ 新手。我听说除以0会导致运行时错误,但是当我尝试时,它抛给我一个编译器错误C2124并且没有创建目标文件,所以编译器会自动运行代码以查看它是否可以在创建之前执行目标文件? (顺便说一句,
我试图在 codefights.com 上解决这个问题,方法是找出最大的质因数并将该数字除以质因数的幂。 int highestPower(int N, int A) { int B =A, j=0,
我对在不同计算机上运行程序有疑问。 我用 C++\windows 7 64 位\Visual Studio 编写了一个程序,该程序在我的计算机上完美运行。 当我尝试在另一台计算机(Windows 7
这个问题已经有答案了: Division in C++ not working as expected (6 个回答) 已关闭 9 年前。 Helo,我是编程新手,遇到了一个问题,我有一个整数,例如
我正在做某事,但遇到了一个我不明白的问题。 double d = 95.24 / (double)100; Console.Write(d); //Break point here 控制台输出是 0.
我需要仅使用按位运算符(例如 ! & ^ ~ 和移位)来计算数字 (a/(2**b)。我得到了以下提示,但我是 C 新手,我不知道什么是代码含义: int bias = x>0 ? 0 : ((1>b
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Java Integer division: How do you produce a double? 当我
嗨,我正在尝试将 numpy 数组分成两部分,并在一个循环中进行此操作,例如: main_array.shape = (50, 400, 400, 3) for i = 0: sub_array_1
这是片段: String myTime = someTime / 1e9d + ","; someTime 是使用 System.nanoTime() 派生的。 1e9d 在这里做什么? 最佳答案 1
Random random = new Random(); int randomx = random.Next(0, 240); 这是我获取随机数的方式,从 0 到 240,如何才能只获取除以 5 的
我一直在处理一个应用程序,因为图像表现得很奇怪,所以我决定打开 Wall 标志,看看是否有任何奇怪的事情发生。它揭示了一个新的警告: character.cpp(364): warning C4723
我是 Android Studio 的新手,我正在开发一个计算器应用程序。现在,当我除以零时,自然会收到错误消息“Infinity”,但如果我想将其更改为“不能除以零”,我该怎么做呢? impor
如何显示每 5 日创建一个新行的表中的数据 ? 例子 data: [1,2,3,4,5,6]; 成分: {{item}} 预期的: | 1 | 2 | 3 | 4 | 5 | | 6 |
我是一名优秀的程序员,十分优秀!