题目描述:
输入一个十进制正整数,将其转换成三进制数,然后统计这个三进制数中数字“1”出现的次数。
输入:
1行,为一个十进制正整数(不超过100000)。
输出:
共2行;
第1行是一个数字字符串,表示将输入转换成三进制数的结果,字符串中间不含空格;第2行是一个
整数,表示将输入转换成三进制数后统计里面数字“1”出现的次数。
输入样例:11
输出样例:102 1
解题思路:输入一个十进制整数,用短除法取余,最后使用while循环统计“1”的个数。
#include<bits/stdc++.h> //万能头
using namespace std;
int main(){
int n,m=0,i=1,s=0;
cin>>n;
while(n){
m=m+n%3*i; //10进制转3进制
n/=3;
i*=10;
}
cout<<m<<endl;
while(m){
if(m%10==1) s++; //统计‘‘1’’的个数
m/=10;
}
cout<<s;
return 0;
}