[codeforces 1277A] Happy Birthday, Polycarp! 模拟

本文解析了Codeforces平台上的1277A题“Happy Birthday, Polycarp!”,提供了详细的C++代码实现过程,通过计数数字位数和构造数值的方法,实现了对给定整数的特定操作,以解决该题目。

[codeforces 1277A]  Happy Birthday, Polycarp!  模拟

总目录详见https://blog.csdn.net/mrcrack/article/details/103564004

在线测评地址http://codeforces.com/contest/1277/problem/A

ProblemLangVerdictTimeMemory
A - Happy Birthday, Polycarp! GNU C++11Accepted30 ms0 KB
    #include <stdio.h>
    int a[15],b[15],cnt,c;
    void count(int n){//数位数
    	cnt=0;
    	while(n){
    		cnt++;
    		b[cnt]=n%10,n/=10;
    	}
    }
    int main(){
    	int t,n,i,ans;
    	a[0]=0;
    	for(i=1;i<=10;i++)a[i]=a[i-1]+9;
    	scanf("%d",&t);
    	while(t--){
    		ans=0;
    		scanf("%d",&n);
    		count(n);
    		ans+=a[cnt-1];
    		c=0;
    		for(i=1;i<=cnt;i++)c*=10,c+=b[cnt];//造数
    		if(n<c)b[cnt]--;
    		ans+=b[cnt];
    		printf("%d\n",ans);
    	}
    	return 0;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值