【发布时间】:2020-09-18 19:01:17
【问题描述】:
我是编程新手,我必须在 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 = (n-lastDigit)/10;为什么是-lastDigit部分?只需丢弃最后一位,n = n / 10即可完成。 -
有趣的是,您可以使用
%来获取数字...为了避免这种情况并简化您的生活,您可以使用sprintf将您的数字转换为数字字符串。 -
@EugeneSh。不幸的是,我只能使用过去两周从 C 中学到的可能性。这只是基本的东西。
-
@VladfromMoscow。是的,它很奇怪。但是我的作业说当这个数小于9时,你可以断定它是否能被3整除,那么它是9、6还是3。