c - 输出一个数是否可被 3 整除的 C 程序
问题描述
我是编程新手,我必须在 C 中进行赋值。我必须编写一个程序来读取整数 n 并输出它是否可以被 3 整除。不幸的是,我不允许使用 % 运算符来检查这一点。“一个正整数能被 3 整除当且仅当它的所有数字之和能被 3 整除。” 所以程序必须添加n的数字,如果它大于9,我必须添加这个数字的数字等,直到数字之和等于或小于9。因为那我可以说n 是否能被 3 整除。我还必须每次打印丢失数字的数量。例如:输入:9999-----输出:9999 -> 36 -> 9。是。我做了一个循环:
while(n>9){
lastDigit = n%10;
sumDigits += lastDigit;
n = (n-lastDigit)/10;
}
sumDigits = sumDigits + n; /*this is the sum of the digits*/
现在如果它大于 9,我必须再次在循环中输入这个数字,但我不知道该怎么做。我用 if else 语句做了 3 个其他循环,但是这样我的程序就很长了。我怎样才能使我的程序更短?因为有些数字必须多次循环。
谢谢。
尼克
解决方案
您在这里需要两个循环 - 一个循环只要n > 9
,另一个循环遍历数字n
并将它们相加:
int origN = n;
while (n > 9) {
int sum = 0;
int tmp = n;
while (tmp > 0) {
int lastDigit = n % 10;
sum += lastDigit;
tmp /= 10;
}
n = sum;
}
if (n == 3 || n == 6 || n == 9) {
printf("%d is divisible by 3\n", origN);
} else {
printf("%d is not divisible by 3\n", origN);
}
推荐阅读
- python - 如何在 RED.xml 中为 C:/Python27/Lib/site-packages/SeleniumLibrary/__init__.py 设置相对路径?
- python - BeautifulSoup find_all 在一个列表中
- python - 读取本地保存的 HTML 文件
- django - 通过 IIS windows 身份验证和 django 访问网站
- javascript - 如何在委托事件侦听器中支持 stopPropagation
- python - 删除熊猫中特定字符后的部分句子
- cryptography - 用于 CVC3 生成的 EMV 芯片中存储的应用程序事务计数器是否有最大值?如果是,此值是否会随时重置?
- git - 有没有办法找到使用 Github 编写的代码行?
- mysql - docker-compose,从链接迁移。(烧瓶应用程序+ mysql)
- ruby-on-rails-5 - HowTo:在编译之前将 postcss(autoprefixer) 应用于 rails 资产