西北大学<数字问题>

本文展示了一段使用C++编写的程序代码,该代码用于解决一个特定的问题:通过读取一系列字符串并进行处理来确定唯一有效的六位数字组合的数量。通过对输入的六位数进行循环移位,并检查每个生成的数字是否已经出现过,从而判断其有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <vector>
#include<math.h>
using namespace std;
bool walked[700500];
char a[7];
int main(){
   // freopen("in.txt","r",stdin);
    int i,j,k,l,f1,f2,f3,t1,t2,t3;
    int n,m;
    char r;
    int sum1;
    while(scanf("%d",&n)==1){
    //scanf("%d",&n);
    t2=0;
   // cout << "n=" << n <<endl;
    memset(walked,0,sizeof(walked));
    for(i=1;i<=n;i++){
            f1=0;
        scanf("%s",a);
        for(t1=0;t1<6;t1++){
                m=0;
            m+=(a[(t1+0)%6]-'0')*100000;
            m+=(a[(t1+1)%6]-'0')*10000;
            m+=(a[(t1+2)%6]-'0')*1000;
            m+=(a[(t1+3)%6]-'0')*100;
            m+=(a[(t1+4)%6]-'0')*10;
            m+=(a[(t1+5)%6]-'0');
      //  cout << m << endl;
        if(walked[m]==1){
                f1=1;break;}
    }
    if(f1==0){
        walked[m]=1;
        t2++;
        //cout << m << endl;
    }
    }
    printf("%d\n",t2);
    }
    return 0;}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值