• 计蒜客---函数规律 (字符串)


    下面我将描述一个简单的函数:

    f(8)=2

    f(16)=1

    f(32)=0

    f(2048)=3

    读入一个x(1≤x≤101000),请你找出f(x)的值。

    输入包括一行,仅一个数字x。

    输出包括一行,仅一个数字f(x)。

    提示:

    f(0)=1, f(1)=0, f(2)=0, f(3)=0, f(4)=0, f(5)=0, f(6)=1, f(7)=0, f(8)=2, f(9)=1

    有时候看数据猜题意也是很重要的技能,如果你看到这里还不知道题意的话,那么我来告诉你,f(x)表示x的十进制表示中有多少个圈圈。

    样例输入

    2048

    样例输出

    3

    题解:字符串处理
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstring>
     4 #include <cstdio>
     5 #include <vector>
     6 #include <cstdlib>
     7 #include <iomanip>
     8 #include <cmath>
     9 #include <ctime>
    10 #include <map>
    11 #include <set>
    12 #include <queue>
    13 using namespace std;
    14 #define lowbit(x) (x&(-x))
    15 #define max(x,y) (x>y?x:y)
    16 #define min(x,y) (x<y?x:y)
    17 #define MAX 100000000000000000
    18 #define MOD 1000000007
    19 #define pi acos(-1.0)
    20 #define ei exp(1)
    21 #define PI 3.141592653589793238462
    22 #define INF 0x3f3f3f3f3f
    23 #define mem(a) (memset(a,0,sizeof(a)))
    24 typedef long long ll;
    25 ll gcd(ll a,ll b){
    26     return b?gcd(b,a%b):a;
    27 }
    28 bool cmp(int x,int y)
    29 {
    30     return x>y;
    31 }
    32 const int N=1005;
    33 const int mod=1e9+7;
    34 char a[N];
    35 int main()
    36 {
    37     scanf("%s",a);
    38     int len=strlen(a);
    39     int s=0,t;
    40     for(int i=0;i<len;i++){
    41         t=(int )a[i]-'0';
    42         if(t==8) s+=2;
    43         else if(t==0||t==6||t==9) s++;
    44     }
    45     cout<<s<<endl;
    46     return 0;
    47 }
  • 相关阅读:
    深入探究Spark -- 了解Executor和参数配置
    深入探究Spark -- Cluster Manger部署(最常用为YARN实现Task Scheduler)
    深入探究Spark -- 最复杂的Shuffle
    深入探究Spark -- 调度器Scheduler
    深入探究Spark -- RDD详解
    深入探究Spark -- 基本组成
    Spark core基础 -- 基本架构和RDD
    Hadoop基础总结(各组件特性)
    Java基础总结
    选做Lintcode分类训练
  • 原文地址:https://www.cnblogs.com/shixinzei/p/7278605.html
Copyright © 2020-2023  润新知