男和男做那个视频网站,工程建设指挥部网站,做网站软件j,东莞教育平台网站建设题目 分析
需要跳过的包括#xff1a;7的倍数和包括7的数。跳过的同时n要加一#xff08;总的报n个数#xff0c;跳过的不算#xff09;。声明一个全局数组count[4]方法1#xff1a;i1开始到n#xff0c;把输入的i转化为字符串#xff0c;然后在字符串里找’7’或者7的…题目 分析
需要跳过的包括7的倍数和包括7的数。跳过的同时n要加一总的报n个数跳过的不算。声明一个全局数组count[4]方法1i1开始到n把输入的i转化为字符串然后在字符串里找’7’或者7的倍数。如果可以跳出count[i%4]需要注意的是甲、乙、丙的下标是123丁的下标是0。CSP官方说支持C 11但是模拟系统通不过方法2每10个数一般需要跳过1-3个数加上70、170这种n最大的时候需要跳过37*6222个数左右再加上700的时候也就是666222100988。这样计算存在误差但是可以接受n最大不会到1700。所以可以把i分为1-100101-699700以上分别处理。如果可以跳出count[i%4]需要注意的是甲、乙、丙的下标是123丁的下标是0。最后按1 2 3 0的下标顺序输出count数组。
AC 代码
方法1代码
#includeiostream
#includestring
using namespace std;
int count[4];
int main()
{int i,n;string s;cinn;for(i1; in; i){sto_string(i);if(s.find(7)!string::npos||i%70){n;int ti%4;count[t];}}coutcount[1]endlcount[2]endlcount[3]endlcount[0];return 0;
}方法2代码
#include iostream
#includestring
using namespace std;
int count[4];
int main()
{int i,n;string s;cinn;for(i1; in; i){//sto_string(i);if(i1i100) //1-100{if(i%70||i%107||i/107){n;int ti%4;count[t];}}else if(i100i700) //101-699{if(i%70||i%107||(i/10)%107){n;int ti%4;count[t];}}else //700-{if(i%70||i%107||(i/10)%107||i/1007){n;int ti%4;count[t];}}}coutcount[1]endlcount[2]endlcount[3]endlcount[0];return 0;
}如果您有问题或者更好的方法欢迎在评论区留言o