每日一题(JAVA)

环形真假谎言

问题描述

在风景如画的蓝桥村,nn 名村民围坐在一张古老的圆桌旁,参与一场思想的较量。这些村民,每一位都有着鲜明的身份:要么是誉满乡野的诚实者,要么是无可救药的说谎者。

当会议的钟声敲响,一场关于真理与谬误的辩论随之展开。每位村民轮流发言,编号为 ii 的村民提出了这样的断言:坐在他之后的两位村民 — 也就是编号 i+1i+1 和 i+2i+2(注意,编号是环形的,所以如果 ii 是最后一个,则 i+1i+1 是第一个,以此类推)之中,一个说的是真话,而另一个说的是假话。

在所有摇曳不定的陈述中,有多少真言隐藏在谎言的面纱之后?

请你探索每一种可能的真假排列组合,并计算在所有可能的真假组合中,说谎者的总数。

输入格式

第一行输入一个整数 TT,表示数据的组数。

接下来 TT 行,每行包含一个整数 nn,表示村落的人数。

输出格式

对于每组数据,输出一行包含一个整数,表示答案。

思路

这道题目的欺骗性在于,题目所说的断言这个人,可能说了真话,也可能说的是假话。如果是假话对应第二个图,真话就是第一个图,因此答案是6.

分为下图三种情况,或者全部为x.

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        //在此输入您的代码...
        int t = s.nextInt();
        while(t-- > 0) {
          long n = s.nextLong();
          long res = n;

          if(n % 3 == 0){
              res += n;
          }

          System.out.println(res);
        }
        s.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值