对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10
9
的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
请问哪位大神能给出代码来。
#include
int main(){
printf("输入数字N :");
int i = 0 , result = 0;
char c;
while(1){
scanf("%c",&c);
if(c == '\n')break;
i++;
result += c-48;
}
printf("位数:%d\n数字和:%d\n",i,result);
return 0;
}
我的博客里也有,用java写的,但是看懂逻辑就好了,一样可用,有空去我博客里的java SE常见逻辑思维题看一下就好,也有其他经典的题目
写个循环就可以了 把循环后得数读出来 再把记录个数的那个值读出来
不知道你这个问题是否已经解决, 如果还没有解决的话:由于排版问题,请用这面这个
#include <stdio.h>
#include <string.h>
int main(){
int bitsnum = 0 , sum = 0;
char str[11]={'\0'};
while(scanf("%s", str)){
for (int i=0; i<(int)strlen(str); i++)
{
++bitsnum;
sum += str[i] - 48;
}
printf("%d %d\n", bitsnum, sum);
bitsnum = 0;
sum = 0;
}
return 0;
}
亲测可用,请直接复制粘贴,不谢
#include
#include
int main(){
int bitsnum = 0 , sum = 0;
char str[11]={'\0'};
while(scanf("%s", str)){
for (int i=0; i<(int)strlen(str); i++)
{
++bitsnum;
sum += str[i] - 48;
}
printf("%d %d\n", bitsnum, sum);
bitsnum = 0;
sum = 0;
}
return 0;
}