这是一个C语言 do while 循环示例:统计十进制正整数 n 转换为二进制数后,其二进制序列中包含的 1 和 0 的个数。
问题分析
输入:一个正整数。
输出:两个整数:1 的个数和 0 的个数。
将十进制数 n 转换成二进制数,一般采用“除 2 取余,倒序输出”的方法。
本题只是统计转换成的二进制数中 1 和 0 的个数,因而只要在“除 2 取余”的过程中不断判断并累计 1 和 0 的个数即可(见图 1)。
图 1:循环执行“除 2 取余”统计 1 和 0 的个数
算法描述
代码清单 1:统计十进制正整数 n 转换为二进制数后,其中包含的 1 和 0 的个数
#include
#include
int main( )
{
int n,s1=0,s0=0;
printf("输入一个正整数:\n");
scanf("%d",&n);
do