51nod1770-模拟&好题-数数字

18 篇文章 0 订阅

https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1770
中文题意。
从左到右模拟,试了几个数,发现最多后面两个数和最前面一个数会变化,其他都不会变化。。并且最多只会增加一位。

#include <bits/stdc++.h>
using namespace std;
/*模拟题。
  开始打了多少个看规律。
  发现最多是 倒数第一个和倒数第二个 正数第一个不会变。
  其他的都是一样的。
  然后写,写错了。。
*/
bool vis[11];
int num[11];
int a,b,c,d;
int main()
{   int t;
    scanf("%d",&t);
    while(t--){
          memset(num,0,sizeof(num));
          memset(vis,false,sizeof(vis));
          scanf("%d%d%d%d",&a,&b,&c,&d);
          if(a*b<=9){
             num[a*b]=d;
             printf("%d\n",num[c]);
          }
          else{
              int add=(a*b)/10;
              int pre=(a*b)%10;
              num[pre]++;
              d--;
              while(d){
                  int ori=(a*b+add)%10;
                  add=(a*b+add)/10;
                  if(num[ori]){
                     num[ori]+=d;
                     break;
                  }
                  else{
                    num[ori]++;
                  }
                  d--;
              }
              num[add]++;
              printf("%d\n",num[c]);
         }
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值