@JodieQ~~
这道题蛮水的(不过我这种菜鸡只配写水题题解了。。。
洛谷上面也有这道题 传送门
有两种写法,一种是要求学过字符串
,还有一种就是整数取位
,无论是哪种都_极其简单_。
下为字符串↓
#include<bits/stdc++.h>//万能头
using namespace std;//命名空间
int main()//主函数
{
int cnt=0;//计数器
string s;//字符串,char也不是不可以,个人比较喜欢string
cin>>s;
for(int i=0;i<8;i++)
{
if(s[i]=='1') cnt++;//逐个字符判断是否为1,若是,则计数器自增
}
cout<<cnt<<endl;//输出
return 0;
}
真的很水。。。
下为整数取位↓
#include<bits/stdc++.h>//万能头
using namespace std;//命名空间
int main()//主函数
{
int cnt=0,s;
cin>>s;
for(int i=0;i<8;i++)
{
if(s%10==1) cnt++;//取个位判断是否为1
s/=10; //删去个位(就是除以十
}
cout<<cnt<<endl;//输出
return 0;
}
如果题目没有告诉你位数......
字符串只需把for循环里的8改为s.size()即可
取位的话就比较烦,数位数代码如下↓
int tem=s,wei=0;
while(tem>0)
{
wei++;
tem/=10;
}
然后把8替换为wei就OK了
太水了。。。