• 聪明的AmyZhi


    Description

    那年一个雨季,AmyZhi在校门外弯身买参考书。
    这时SiriusRen走过来,一言不合甩给她一道(自认为)很难的题

    给你一个数字N,求一个最小的正整数M,这个数字M的各个位的数字加上它本身之和恰好为N。

    没有想到AmyZhi秒解了这道题 并把N扩大到了10^18 甩回给了SiriusRen

    SiriusRen苦苦思索,发现并不会这道题。可怜SiriusRen一世英名,在AmyZhi面前却宛如智障少年。SiriusRen抬头透过倾斜的雨丝,看向模糊的世界,车水马龙,穿流不息,人来人往,形色匆匆,刹那间惘然,竟不知去向何方……

    Analysis

    因为只有18位,每个位数都<9,所以各位数之和极小,为162,直接枚举i-162~i,加以位数拆分判断即可。

    找规律?呵呵。

    Code

    #include <bits/stdc++.h>
    #define ll long long
    void read(ll &i){
    	char c=getchar();
    	while(c<'0'||c>'9')c=getchar();
    	i=0;
    	while(c>='0'&&c<='9'){
    		i=(i<<1)+(i<<3)+c-'0';
    		c=getchar();
    	}
    }
    int Divide(ll x){
    	int s=0;
    	while(x){
    		s+=x%10;
    		x/=10;
    	}
    	return s;
    }
    int main(){
    	ll T;
    	read(T);
    	while(T--){
    		ll n;
    		read(n);
    		bool judge=false;
    		for(int i=std::max(0,i-162);i<=n;i++)
    			if(Divide(i)+i==n){
    				printf("%d",i);
    				puts("");
    				judge=1;
    				i=n+1;
    				break;
    			}
    		if(!judge)puts("Stupid SiriusRen");
    	}
    	return 0;
    }
    
  • 相关阅读:
    水平拖拽滚动条
    垂直拖拽滚动条
    网页特效_拖拽案例
    js实现倒计时
    权限控制
    Eclipse 项目有红感叹号
    JBPM简单介绍
    开博有感
    各种正则表达式
    Python中读取目录里的文件并按排序列出
  • 原文地址:https://www.cnblogs.com/qswx/p/9644070.html
Copyright © 2020-2023  润新知