- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
让我们定义一个要构造的数字的行程,如下所示:访问该数字的最左边的数字。该数字告诉您接下来要访问哪个数字:向右移动,如有必要,环绕到数字的左端,与该数字的值一样多的位置。继续此过程,直到第二次访问某个数字。如果所有数字都已被访问,则该数字符合环绕数字的资格。否则,就不会。
例如,考虑数字32741
。我们访问最左边的数字,它告诉我们接下来访问右侧三个数字,即 4
。接下来我们访问 7
(位于 4
右侧的四个位置),然后访问 1
,然后访问 3
再次。行程第二次回到一个数字,没有访问完所有数字。 (2
从未被访问过。)因此,32741
不是一个环绕数字。另一方面,3233
是一个环绕数字,因为我们首先访问最左边的 3
,然后是最右边的 3
,然后是中间的3
,然后是2
,然后返回到最右边的3
。所有四位数字均已访问。
Write a program that accepts as input a positive number and reports whether or not it is a wrap around number.
输入格式:
Input consists of a single positive number.
假设
Assume that the input number is less than or equal to 400000000.
输出格式:
Refer sample output for formatting details.
示例输入 1:
872
示例输出 1:
872 is a wraparound number
示例输入 2:
351267813
示例输出 2:
351267813 is not a wraparound number.
<小时/>
这是我的程序..它显示示例输入 1 的错误输出和示例输入 2 的正确结果。
#include<stdio.h>
int main()
{
int a[9],number;
scanf("%d",&number);
int i;
for(i=0;i<9;i++)
{
a[i]=-1;
}
int temp=0,digit=0,index=0;
temp=number;
while(temp!=0)
{
digit=(temp%10);
a[index]=digit;
index=index+1;
temp=temp/10;
}
int size=0,checksize=-1;
i=0;
for(i=0;i<9;i++)
{
if(a[i]==-1)
{
size=i;
checksize=0;
break;
}
}
if(checksize==-1)
size=9;
int isAWrapAround=0;
int x=0,count=size-1,remaining=0,arraysize=size;
for(i=(arraysize-1);i>=0;i--)
{
x=a[count];
a[count]=-1;
if(x!=-1)
{
if(count-x>=0)
{
count=count-x;
}
else
{
remaining=x-count;
count=0;
do
{
if(remaining<=arraysize)
{
count=arraysize-remaining;
break;
}
else
{
count=remaining-arraysize;
remaining=remaining-arraysize;
}
}
while(count>arraysize-1);
}
}
else
{
isAWrapAround=-1;
}
}
if(isAWrapAround==0)
{
printf("%i is a wraparound number",number);
}
else
{
printf("%i is not a wraparound number",number);
}
return 0;
}
无法找出错误。
最佳答案
刚刚写了一个简单的代码来演示我如何解决这个问题。采取一些想法并改进你的。干杯
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
//! Max amount of digits in input value
#define maxInputDigits 9
//! Highest input value
static const uint32_t maxInputValue = 400000000;
int main()
{
uint32_t inputValue;
uint8_t digitValue[maxInputDigits], tmpDigitValue[maxInputDigits];
uint8_t nrOfDigits = 0;
bool digitVisit[maxInputDigits] = {false, false, false, false, false, false, false, false, false};
uint32_t dividend = 10;
uint32_t divisor;
uint8_t cnt;
uint8_t index;
uint8_t jumps;
// Get input from user
scanf("%d", &inputValue);
// Input valid?
if ( inputValue > maxInputValue )
{
printf("Input value condition: <= %d", maxInputValue);
}
// Separate all digits from input value into its own index
divisor = inputValue;
while( divisor != 0 )
{
tmpDigitValue[nrOfDigits] = (divisor % dividend)/(dividend / 10);
divisor /= 10;
nrOfDigits++;
}
// Reverse the order, so that the least digit becomes left most in the array (digitValue[0])
for ( cnt = 0; cnt < nrOfDigits; cnt++ )
{
digitValue[cnt] = tmpDigitValue[(nrOfDigits-1)-cnt];
}
printf("Nr of digits: %d\n\n\n", nrOfDigits);
// Set the start index (left most)
index = 0;
// Start the process
while ( true )
{
printf("Current value[index]: %d[%d]\n",digitValue[index], index);
// Already been checked?
if ( digitVisit[index] == true )
{
break;
}
else
{
digitVisit[index] = true;
}
// Amount of jumps
jumps = digitValue[index];
// Jump to next index
while ( jumps > 0 )
{
index = ( index >= (nrOfDigits - 1) ) ? 0 : (index + 1);
jumps--;
}
}
// Check if any of the digits has not been visited
for ( cnt = 0; cnt < nrOfDigits; cnt++ )
{
if ( digitVisit[cnt] == false )
{
printf("\n%d is not a wraparound number\n", inputValue);
return 0;
}
}
printf("%d is a wraparound number\n", inputValue);
return 0;
}
关于c - 识别环绕号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31717310/
以下是场景:我有一个可通过移动浏览器访问的网络应用程序。每当用户单击通过网络浏览器访问的应用程序页面中的链接时,我需要检测移动设备 IMEI 和 sim IMSI。这是为了跟踪具有相同 SIM 卡的同
场景如下:我有一个可通过移动浏览器访问的 Web 应用程序。每当用户单击可通过网络浏览器访问的我的应用程序页面中的链接时,我都需要检测移动设备的 IMEI 和 sim IMSI。这是为了跟踪具有相同
我需要在 Phonegap 为 Android 构建 HTML 移动 Web 应用程序中获取 IMEI 号码、手机号码、SIM 号码 最佳答案 你不能直接得到它们。 选项 1) 寻找一些插件,我不确定
我有一个输入框。它可能包含名称或数字。 如果输入至少有一个字母,我们将其作为名称处理,并且其长度应为 11 或更短。因此有效输入可能是 Bob、12Bob 或 Bob23。不允许有空格或其他字符,因此
我有这个要求:从客户表中 - 返回电话号码的前缀。我尝试使用字符串,将全名拆分为名字/姓氏,但它仅适用于数字。完整的nb格式为(258)1231456 最佳答案 SELECT '(258) 12314
我正在开发一个应用程序,用户必须使用手机键盘调用电话并输入验证号码。 我希望能够检测他们输入的数字是否正确。电话系统无法访问有效号码列表,但它会根据算法(如信用卡号码)验证号码。 以下是一些要求: 一
我有一张城市交通卡。我需要知道卡的援助(应用程序标识符)号码是多少。根据 EMV Book 1,我必须使用 List of AIDs 方法(第 141 页)。但是如何呢? 我还有一个 ACR122U
我想使用 javascript 分解数组中的 VIN,可能使用正则表达式,然后使用某种循环... 以下是读取 VIN 的方法: http://forum.cardekho.com/topic/600-
Here我找到了一个非常有用的答案,展示了如何使用 Whatsapp 从网站发送预填充的消息。 我们可以对 Telegram 做同样的事情吗? 最佳答案 您可以尝试使用以下方式打开 Telegram
我需要帮助完成这段代码,以便应用程序在收到推送通知时显示角标(Badge)编号,我可以收到推送通知,但应用程序上没有角标(Badge),这是代码 func application(_ applica
我正在使用 Twilio 进行入站调用,用户可以通过 Twilio-Number(从 Twilio 获得)调用应用程序并将被重定向到管理员。 现在,我们希望管理员使用相同的 Twilio 号码调用用户
C#/.NET 2.0 我需要解析一个字符串,其中包含街道名称和房屋编号的两个独立值。 in: "Streetname 1a" out: "streetname" "1a"
正如你们可能建议的那样,我正在创建一个带有语音命令的 SIRI。现在我确实想添加一个调用功能。例如我有这段代码: Intent call = new Intent(Intent.ACTION_DIAL
我想构建一个 android 应用程序,当设备第一次启动时,它会检测 IMEI 和其他设备信息,并检查是否有 SIM 卡。如果有 SIM 卡,它会发送短信包含特定号码的 IMEI 和其他设备信息。 我
我有这个对象: a = {"formData": { "total": "60.00", "tr0_RTN": "PZH", "tr0_amount": "10.00",
我正在制作一个测试工具,我有 imei 号码,但是否可以简单地或通过 NDK 更改 imei 号码。 谢谢 最佳答案 如何更改 IMEI 取决于硬件/系统,并且它是 - 至少在世界的(大部分)部分 -
我有一个表,其中有子项和父项,父项的 pid 为 0,子项的 pid 为父项的 id。我想选择父级及其子级数。 我的模型: function parent_child() {
抱歉,因为我从 android 开发跳到 IOS 开发,我想知道收到通知时是否有任何函数会触发?或者我应该如何处理通知? 这是我应用中的应用委托(delegate)。问题是每当收到消息时,如果应用程序
我正在开发应用程序,当它收到未接来电或来自手机的消息时自动发送消息。我的问题是当我从私有(private)号码收到未接来电或从私有(private)号码或服务器收到消息时(way2sms,160/2,
我想检查从联系人那里得到的电话号码是手机号码还是固定电话号码。我试过使用正则表达式,但一切都是徒劳的..任何帮助都将非常感激 最佳答案 要按手机号码和固定电话过滤联系人,您需要在数据库中有标准代码列表
我是一名优秀的程序员,十分优秀!