蓝桥杯---特别数的和(C语言)

简介: 代码如下

蓝桥杯—特别数的和

image.jpeg

解决方案:

1.从1遍历至n

2.确定每个数是否含有2、0、1、9

#include"stdio.h"
int g(int a,int n){//遍历数的每一位
  int x;
//  int n;
  //n=nn;
  while(a>0){
    x=n/a;
    if(x==2||x==0||x==1||x==9){
      //printf("%d\n",nn);
      return 0;
    }
    //printf("%d\n",x);
    n=n-x*a;
    a=a/10;
  }
  return 1;
}
int f(int n){//找到最大整数a,如123的是100,2546的是1000
  int a=1;
  while(a<=n){
    a=a*10;
  }
  a=a/10;
  if(g(a,n)){//没2019返回0,即不加
    return 0;
}else{
    return n;//有2019返回数字相加
}
//  g(a,n);
}
int main(){
  int x,i;
  int s=0;
  scanf("%d",&x);
  for(i=1;i<=x;i++){
    s=s+f(i);
  }
  printf("%d\n",s);
return 0; 
}

主要在于获得数的每一位!!!

相关文章
|
6月前
|
人工智能 搜索推荐 算法
C语言第十一练——输出本机的C语言基本数据类型最大最小取值范围
C语言第十一练——输出本机的C语言基本数据类型最大最小取值范围
42 0
|
6月前
|
算法 搜索推荐 程序员
C语言第十四练——请输入一个数的逆序数
C语言第十四练——请输入一个数的逆序数
76 0
|
6月前
|
算法 搜索推荐 程序员
C语言第二练——求三个数的最大值
C语言第二练——求三个数的最大值
146 0
|
3天前
|
算法 搜索推荐 程序员
C语言第十七练——输出二进制中1的个数
C语言第十七练——输出二进制中1的个数
22 0
|
3天前
|
存储 编译器 C语言
c语言进制转换、操作符万字详解------附带多道经典习题
常用的进制分类 二进制:由0和1组成 八进制:由0~7数字组成 十进制:由0~9数字组成 十六进制:由0~9和A~F组成
|
7月前
|
C语言
C语言循环程序的一些初级编程题目
C语言循环程序的一些初级编程题目
C语言循环程序的一些初级编程题目
|
C语言
C语言进阶之路:输出任意两个数的和
C语言进阶之路:输出任意两个数的和
199 0
C语言进阶之路:输出任意两个数的和
|
C语言
《C语言及程序设计》实践参考——分数的累加
返回:贺老师课程教学链接  项目要求 【项目1:分数的累加】编程序,输出1/3-3/5+5/7-7/9…+19/21的结果提示:如果直接解决上面的问题有困难,可以设计一条“由易到难”的路线,逐渐解决其中要解决的问题,让自己的思路明朗起来。(1)1+2+...+20  ——这个应该会(2)1+1/2+1/3+…+1/20  ——分数的累加,注意两个整型相除,商也为整型,而显然求和结果应该是
1618 0