C++计算1~100000一共有多少个1

供稿:hz-xin.com     日期:2025-01-13
C++编程计算1~100000所有奇数之和,要求和>=400000为止,且要使用break语句

如下:
#includeusing namespace std;int main(){int i,t,n;i=1;t=0;n=0;while(i=400000) break;}cout<<"n="<<n<<" "<<t<<"个参与累加的奇数"<<endl;return 0;}

你定义的a数组长度为100000,下标对应0~99999,你在14行条件b<=100000,当b==100000时数组a会进行a[100000]寻址,发生越界。

int count = 0;//1的数量
for (int i = 1; i <= 100000; i++)
{
if (i / 100000 == 1) { count++; }//十万位
if (i / 10000 == 1) { count++; }//万位
if (i / 1000 == 1) { count++; }//千位
if (i / 100 == 1) { count++; }//百位
if (i / 10 == 1) { count++; }//十位
if (i % 10 == 1) { count++; }//个位
}
//输出 count

带0开头全5位数00000~99999,这些数字中0~9是对称分布的
5位*100000个/10种=50000个
00000变成100000 多出一个1
1~100000一共有50001个1

最简单的是遍历法,设个变量i,不停的+1,然后判断/10取余看是否等于1就行,缺点就是时间复杂度高需要循环100000下
再给你个其他思路,可以参考下,个位每10个数中有一个1,十位每100个数中也只有1个以此类推。
100000/10+100000/100+100000/1000。。。。

思想:
把1到10000的数打印到字符串,统计'1'的个数
可以在字符串满一定的长度的时候统计一次,做个累加,清一次内容
不要用去除取余的办法,很慢;
int getcont(char* buff)
{
int a = 0;
while(*buff != '\0')
{
if(*buff++ == '1')
a++;
}
return a;
}
int main(int argCount, char*argValue[])
{
int i = 0;
int cnt = 0;
char buff[1024] = {0};
for(i = 0; i<=100000;i++)
{
sprintf(buff+strlen(buff), "%d", i);
if(strlen(buff) > 1000)
{
cnt+=getcont(buff);
memset(buff, 0, 1024);
}
}
cnt+=getcont(buff);
printf("cont 1:%d\n", cnt);
system("pause");
return 0;
}

#include <iostream>
using namespace std;
int main()
{
int num,count,a1,a2,a3,a4,a5,a6;
count=a1=a2=a3=a4=a5=a6=0;
for(num=1;num<=100000;num++)
{
a1 = num%10;
a2 = (num/10)%10;
a3 = (num/100)%10;
a4 = (num/1000)%10;
a5 = (num/10000)%10;
a6 = num/100000;
if(a1==1 || a2==1 || a3==1 || a4==1 || a5==1 || a6==1)
{
cout<<num<<endl;
count++;
}
}
cout<<"count:"<<count<<endl;
return 0;
}

一台电脑从1加到100000要多久
编译时,i+1比i++多一条赋值指令

利息8厘,是+++吗。怎么算利息?一个月,变成多少?
而且整体还款金额要比等额本息的少,我举个例子,比如我贷款10万,贷5年,等额本金的话要给利息1万元,而等额本息的话要给利息1.5万元,整整多了5000元(利率是一样,差别在于它算利息的基情况银行是不会主动贷款方式,银行收要是有足够的资金的话,尽量贷的时间短点,以等额本金贷,如果没那个实力...

小学六年级应用题
只有5道,给不给分看你的了++ 回答者:隐形青清草 - 魔法学徒 一级 1-23 13:54 1)水果店一天运进苹果、香蕉、梨共390千克,苹果的重量是梨的1.5倍,香蕉的重量是梨的3\/4,三种水果各运进多少千克? (2)一缸水,用去1\/2和5桶,还剩30%,这缸水有多少桶?

将100000元分解成1元、5元、10元的零钱共有多少种分解方法?
81种换法一 ,每种至少一张,实际应为至少10元、5元各一张,1元的5张。共20元,剩下的80元可任意分配。二,80元的零钱可以如下:8张10元。1种7张10元,5元的2、1、0张(差额为1元,下同)。3种6张10元,5元的4、3、2、1、0张。5种5张10元,5元的6、5、4、3、2、1、0张。

题目2:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平...
解题过程如下:include<stdio.h> include<math.h> void main(){ int i=1;int n,m;for (i=1;i<100000;i++){ m=sqrt(100+i);n=sqrt(268+i);if(m*m==i+100)if(n*n==i+268)printf("%ld",i);}}1581

C++ 求解一道题 给出任意一个整数n,计算出 从1到n中所有数中1出现的次...
include <iostream> include <sstream> include<string> using namespace std;int main(){ cout<<"input the n "<<endl;int n;cin>>n;for(int i=1;i<n+1;i++){ ostringstream os;os<<i;string temp=os.str();int count=0;for(int j=0;j<temp.length();j++){ if(temp[j]==...

问第五个人多少岁Python(第五个生日是几岁)
如果递归次数过多,系统就会有可能内存不足,不信你增大人数,比如计算100000个人的年龄可能会溢出,此为堆栈溢出,也就是没有堆栈空间了 编写程序:、有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数……#includestdio.h intage(intn){intc;if(n==1)c=10;elsec=age(...

C或C++程序设计 求大数阶乘
result[lenght++] = c % 10 +'0'; \/\/取当前位 c \/= 10; \/\/计算进位 } } end = time(0);for (int k=lenght-1; k>=0; k--){ cout<<result[k];} cout<<endl;cout << difftime(end, start) << endl;cout<<"length="<<lenght<<endl;delete[] result;要算出100000!

C++产生随机数的
icnt != 10; ++icnt)\\x0d\\x0a cout << "No." << icnt+1 << ": " << int(random(0,10))<< endl;\\x0d\\x0a return 0;\\x0d\\x0a}\\x0d\\x0a\\x0d\\x0adouble random(double start, double end)\\x0d\\x0a{\\x0d\\x0a return start+(end-start)*rand()\/...

求N!总共有多少个零
include <stdio.h> include <string.h> include <stdlib.h> define N (100000)int overturn(char*ch){ int i=0;int temp = 0;int len = strlen(ch);for(i=0;i<len\/2;i++){ temp = ch[i];ch[i] = ch[len-i-1];ch[len-i-1] = temp;} return 1;} int product(char*a...