C语言 N为正整数,计算从1到N的所有整数中包含数字1的个数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 N为正整数,计算从1到N的所有整数中包含数字1的个数相关的知识,希望对你有一定的参考价值。
N为正整数,计算从1到N的所有整数中包含数字1的个数。比如,N=10,从1,2...10,包含有2个数字1。
输入
输入数据有多组测试数据,每一组占一行,每行为一个数字N,其中1≤N≤9999。以0作为结束。
输出
输出1到N所有整数中1的个数,每个测试占一行。
样例输入
1
2
3
4
5
6
7
8
9
10
11
0
样例输出
1
1
1
1
1
1
1
1
1
2
4
不要c++的 刚学的人能够看懂 能有注释
如下:
/*用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数
*/#include"stdio.h"intcount(int n)
int i,j,c=0;for(i=1;i<=n;i++)
j=i; while(j!=0)if(i%10==1) /*判断位数中是否有1*/c++;
j=j/10; /*让数除以十让他原来的高位变为低位,即原来的十位变成个位*/return c;
main()int c,n;printf("input n:\\n");scanf("%d",&n);c=count(n);
printf("%d\\n",c);
C语言基础语法:
数据类型:C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型;
常量与变量:常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元;
数组:如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
#include"stdio.h"
int count(int n)
int i,j,c=0;
for(i=1;i<=n;i++)
j=i;
while(j!=0)
if(i%10==1) /*判断位数中是否有1*/
c++;
j=j/10; /*让数除以十让他原来的高位变为低位,即原来的十位变成个位*/
return c;
main()
int c,n;
printf("input n:\n");
scanf("%d",&n);
c=count(n);
printf("%d\n",c);
本回答被提问者采纳 参考技术B //拿去看吧
#include <stdio.h>
int count1(int N)
int count = 0;
int val;
int t;
int i;
for(i = 1; i <= N; i++)
val = i;
while(val)
t = val%10;
if(t == 1)
count ++;
val = val/10;
return count;
int main(void)
int N;
while(1)
scanf("%d",&N);
if(N == 0)
break;
printf("%d\n",count1(N));
追问
是Time Limit Exceeded
追答那我就不懂了,结果是对的
计算一个整数N的阶乘 【单循环】
题目描述
计算一个整数N的阶乘
输入
一个整数N, (0〈=N〈=12)
输出
整数N的阶乘.
用java做出来
int main()
int N,i,s=1;
scanf("%d",&N);
while(N<=12&&N>=0)
if(N!=0)
for(i=N;i>0;i--)
s=s*i;
printf("%d",s);
else if(N==0)
printf("1");
printf("\n");
return 0;
以上是关于C语言 N为正整数,计算从1到N的所有整数中包含数字1的个数的主要内容,如果未能解决你的问题,请参考以下文章
N为正整数,计算从1到N的所有整数中包含数字1的个数.用(c++)