2019-04-05 12:56:34 C

maketemp( int n )のnは桁数です

Copy Copied! Full
#include <stdio.h> #include <stdlib.h> #include <string.h> int temp[1048576]={}; int a[]={0,3,5,7}; int tempnum= 0; void puttotemp(int a){ temp[tempnum] = a; tempnum++; } void maketemp(int n){ puttotemp(a[0]); puttotemp(a[1]); puttotemp(a[2]); puttotemp(a[3]); } int main(void){ int N; scanf("%d",&N); int i,j,x; int flag,threeflag,fiveflag,sevenflag; char s[11]; snprintf(s,11,"%d",N);//sにはNが入る int n = strlen(s);//nにはNの桁数が入る int ans = 0; maketemp(n); for(i=0;i<n*n*n*n;i++){ if( N >= temp[i]){ }else{ continue; } //sの0行目から753かどうか調べる snprintf(s,11,"%d",temp[i]);// flag = 0;threeflag=0;fiveflag=0;sevenflag=0; for(j=0;j<strlen(s);j++){ if(s[j]=='7'){ sevenflag=1; }else if(s[j]=='5'){ fiveflag = 1; }else if(s[j]=='3'){ threeflag= 1; }else{ flag = -1; } } if(flag == 0 && sevenflag==1 && fiveflag ==1 && threeflag ==1){ ans++; } } printf("%d",ans); return 0; }
maketemp( int n )のnは桁数です
https://atcoder.jp/contests/abc114/tasks/abc114_c
RECOMMEND