C语言或者C++求:1到n 1出现次数问题

在从1到n的正数中1出现的次数,题目:输入一个整数n(这里n可以是一个天文数字,比如 ),求从1到n这n个整数的十进制表示中1出现的次数。
例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。
注意:要能算10的20次方
目前没有能算出整形意外的数字,比如10的20 或者30次方这样的天文数字

第1个回答  2010-12-07
#include<stdio.h>
void main()
{ int i,j,n.m,flag;
flag=0;
printf("Enter The Number n:");
scanf("%d",&n);

for(i=1;i<=n;i++)
{ m=i;
while(m/10!=0)

if(i%10 ==1) flag=flag+1;
)

printf("The Number is: %d= \n", flag);
}
第2个回答  2010-12-07
#include <stdio.h>
#include <conio.h>

int main()
{
long n;
long i,j;
long cnt=0;
printf("n=");
scanf("%ld",&n);

for (i=1;i<=n;i++)
{
j=i;
while(j)
{
if (j%10==1)
cnt++;
j/=10;
}
}
printf("cnt=%ld\n",cnt);

getch();
return 0;
}
第3个回答  2010-12-07
101本回答被提问者和网友采纳
第4个回答  2020-07-08
将整数强制转换成字符串然后放进数组里,再做就容易了吧!

用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数
{ int c,n;printf("input n:\\n");scanf("%d",&n);c=count(n);printf("%d\\n",c);}

求用c++\/c语言编写一个输入n输出1~n的所有排列(千万不是排列数哦)的...
cout << "Input n" << endl;\/\/ 输入n cin >> n;\/\/ 这里可以自己做输入错误检测 \/\/ 给数组动态分配大小 int* a = new int[n];\/\/ 给数组赋值(要排列的数据源)for(int i = 1; i <= n; i++){ a[i - 1] = i;} do{ \/\/ 依次输出每个数 for(int i = 0; i < n; ...

C语言 怎么计算阵列中每一个不同元素出现的次数
printf("%d[%d]\\n" , i , count[i] );} C语言计算阵列中任一元素a[i][j]在阵列中位置的公式 J是从0开始的 ,所以实际的位置应该加1,阵列嘛~~都是从零开始的,第一个数是0,第二个是1 c语言程式设计:输入两个整型阵列,每个阵列中各有10个不同的元素,输出在两个阵列中都出现的元...

求解,用C语言编写一个程序,查找一个字符串在另一个字符串中出现的次数...
for(char c:cs){ hSet.add(c);} ArrayList<Character>list=new ArrayList<Character>(hSet);int n=hSet.size();\/\/有多少种字符 int[]times=new int[n];\/\/保存每种字符的出现次数 for(char c:cs){ times[list.indexOf(c)]++;} for(int i=0;i<n;i++){ map.put(""+list.get(i...

C语言统计一篇文件里出现最多的三个单词
while(pw!=0){ q=Find(head, pw, &f);if(f==1){ \/\/找到该单词,出现次数加一 q->c++;}else{ \/\/没找到该单词,将该单词插入链表 if(q==head && q->w[0]=='\\0'){ \/\/原链表为空,这是第一个单词 strcpy(q->w, pw);q->c=1;q->next=q->pre=0;...

求解c++ 输入一句话,求单词的长度和出现次数
{ char ch;int i=0,j=0;int sum[20]={0}; \/\/初始化数组全部为0 cout<<"please input:"<<endl;while((ch=getchar())!='\\n'){ \/\/判断是否为空格,即一个单词是否输入完毕,当遇到空格则自动保存到sum[j]数组中,且出现次数加1,j为单词长度 if(!isspace(ch))j++;else { sum...

C语言程序:求S=1(一次方)+2(二次方)+3(三次方)...加到n(n次方)问题求...
fac;}int main(){ int n; printf("请输入n的值:"); scanf("%d",&n); int i,s=0; for(i=1;i<=n;i++) s+=factorial(i); printf("1(一次方)+2(二次方)+3(三次方)...加到n(n次方)的和为:%d",s); return 0;} ...

c++函数调用:编写求1-n和的函数,调用函数计算s=1+(1+2)+(1+2+3)+...
{ int i;int t;int s= 0;for(i = 1; i = 10; i++){ t += i;s += t;} printf("s = %d\\n",s);} 上面是C语言的,下面用C++ 的做 includeiostream using namespace std;void main(){ int i;int t;int s= 0;for(i = 1; i = 10; i++){ t += i;s += t;}...

先把1到n中的所有奇数从小到大输出,再把所有的偶数从小到大输出 怎么...
int a[100]={0},b[100]={0},c;int i=0,j=0,t,n,m;while (i>=0){ if(!scanf("%d",&c))break;else { if(c%2==0)a[i++]=c;else b[j++]=c;} } for(m=0;m<i;m++){ for (t=0;ta[t+1]){ n=a[t];a[t]=a[t+1];a[t+1]=n;} } } for(m=0;m...

c语言,输入一个字符串,计算某字符出现次数
voidmain(){charc,s[80];inti,k=0;gets(s);\/*输入字符串*\/ printf("Pleaseinputacharacter:");c=getchar();for(i=0;s[i]!='\\0';i++){if(s[i]==c)k++;} printf("%cisfound%dtimes",c,k);} C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。

相似回答
大家正在搜