请问为啥程序几分钟都运行不完?
  • 板块学术版
  • 楼主潜水的蒟蒻
  • 当前回复30
  • 已保存回复30
  • 发布时间2022/10/20 13:20
  • 上次更新2023/10/27 06:48:30
查看原帖
请问为啥程序几分钟都运行不完?
119643
潜水的蒟蒻楼主2022/10/20 13:20

i3-6100u,应该不是cpu的问题,但实际运算次数应该到不了n^2的十分之一(感觉能有nlogn就差不多了)吧,按1分钟1千万次运算不至于几分钟都跑不完啊
哪位大佬能给出程序实际大概的运算次数?
ps:无法理解为啥会有人给我说要把freopen注释掉(悲)如果是我太菜了不知道freopen会让程序一直运行请直接来踹我/kk


//笑死,几分钟跑不完
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int m=10000005,l,k[10000005];
int main()
{
	freopen("1.in","r",stdin);
	freopen("1.out","w",stdout);
	for(int i=0;i<=m;i++)//逐个检查每个数是否含7或可被含7的数整除
	{
		bool che=0,out=0;
		int h=i;
		//cout<<"test :h="<<h<<endl;
		while(h>0)
		{
			if(h%10==7)//从后到前检查
			{
				che=1;
				break;
			}
			h=h/10;
		}
		//cout<<"test :che="<<che<<endl;
		if(che)
		{
			cout<<"0,";//复制表值时去掉最后一个逗号
			l++;
			k[l]=i;//k数组保存数字中含7的
		}
		else//数字中不含7
		{
			for(int j=1;j<=l;j++)
			{
				if(i%k[j]==0)
				{
					cout<<"0,";
					out=1;
					break;
				}
			}
			if(!out)cout<<"1,";
		}
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}

2022/10/20 13:20
加载中...