zoukankan      html  css  js  c++  java
  • UVA

    /*
    一开始没怎么想,直接就用一想就能想到的方法,果不其然,TLE
    TLE代码:
    #include <iostream>
    #include <cstring>
    #include <cmath>
    using namespace std;
    typedef long long ll;
    ll n;
    
    int main()
    {
    	int a, x;
    	while (cin >> a)
    	{
    		ll sum = 0;
    		for ( x = 0; ; x++)
    		{
    			sum += pow(10, x);
    			if (sum % a == 0) break;
    		}
    		cout << ++x << endl;
    		
    	}
    	return 0;
    }
    
    后来想起之前问过的一道题,数论里面经常用到的取模...再就是,得到的那个形式的数字,就是累加后的和,p,是所有位数都是1的一个数,除了pow函数,也能直接用循环实现,这样的话,还能每处理一次,cnt自增一次,否则pow函数需要多次调用,求和还得用一次循环...效率肯定就不高了
    
    这题突破的关键点,就是最终是为了实现,取模a得到余数是0,那么在累加的过程中,就相当于步步都能取模a,知道取模后的结果为0,这时再输出数字中1的个数
    
    以及,这题为了得到全是1的那个数,其实很巧妙,见上上段
    
    但我自己做的时候,就太想当然了,题目有求和就求和,题目有幂就用pow,根本不动脑子想想怎么优化,难怪TLE
    
    注意注意!!!取模是很好的优化方式!!以及,数论忘得太多了,虽然本就没怎么学过,得好好补补
    */



    #include <iostream>
    #include <cstring>
    #include <cmath>
    using namespace std;
    typedef long long ll;
    ll n;
    
    int main()
    {
    	int a;
    	while (cin >> a)
    	{
    		int ans = 1, x = 1;
    		
    		while (x % a)
    		{
    			x = ( (x * 10) + 1 ) % a;
    			ans++;
    		}
    		cout << ans << endl;
    		
    	}
    	return 0;
    }


  • 相关阅读:
    Chrome调试工具常用功能
    把读取sql的结果写入到excel文件
    Android逆向破解:Android Killer使用
    鸭子类型和猴子补丁
    Scrapy同时启动多个爬虫
    命令注入
    理解RESTful架构
    程序员需要谨记的九大安全编码规则
    10条建议分享:帮助你成为与硅谷工程师一样优秀的程序员
    代码审计:是安全专家都应该掌握的技能
  • 原文地址:https://www.cnblogs.com/mofushaohua/p/7789482.html
Copyright © 2011-2022 走看看