我試圖寫生成1 3的情況下,簡單的C程序:如何檢查一個整數中相同的數字而不使用數組?
- 沒有相鄰數字的相同的整數。
- 具有一對相同的相鄰數字的整數。
- 一個具有相同相鄰數字的單個三重奏的整數。
在整數值不符合任何一種情況下的要求後,整數將增加1,然後再次檢查。
條件:用戶在1-3之間輸入一個選項,起始整數值是一個非負整數,並且生成的值大於用戶輸入的起始整數值。
注意:我可能不使用涉及數組或字符串的方法。遞歸是允許的,但是我的教授不鼓勵它的使用。
我目前的問題是確定如何比較輸入的整數值中的數字而不爲每個數字創建一個新變量。這是我到目前爲止有:
int getOption() //retrieves the option entered by the user
{
int option;
do
{
printf("\nEnter desired option: ");
scanf("%d", &option);
if (option <= 0 || option > 3)
{
printf("\nError! Invalid option selected!!\n");
}
}while(option <= 0 || option > 3);
return(option);
}
int getStart() //retrieves the starting integer value entered by the user
{
int startValue;
do
{
printf("\nEnter starting integer: ");
scanf("%d", &startValue);
if (startValue <= 0)
{
printf("\nError! Non-negative values only!!\n");
}
}while(startValue <= 0);
return(startValue);
}
int checkSame(int startValue); //checks if the user-given integer has any pairs of same adjecent digits.
{
int counter;
int sameAdjacent = 0;
while (sameAdjacent < 1)
{
while(startValue > 0)
{
startValue = startValue % 10;
counter++;
}
for(startValue; startValue > 0; startValue/10)
{
//?????
}
}
}
這裏是一個什麼樣的正確執行看起來像一些例子:
1. No adjacent digits the same.
2. A single pair of adjacent digits the same.
3. A single trio of adjacent digits the same.
Enter desired option: 1
Enter starting integer: 1222
Next larger value with no two adjacent digits the same is 1230.
1. No adjacent digits the same.
2. A single pair of adjacent digits the same.
3. A single trio of adjacent digits the same.
Enter desired option: 2
Enter starting integer: 133300
Next larger value with only a single pair of digits the same is 133401.
1. No adjacent digits the same.
2. A single pair of adjacent digits the same.
3. A single trio of adjacent digits the same.
Enter desired option: 3
Enter starting integer: 123456
Next larger value with only a single trio of digits the same is 123555.
任何幫助表示讚賞。謝謝!
作爲除很好的答案,只需注意_「x的最後一個10位數字」也被稱爲_「最不重要的數字」_。 – Ziezi
謝謝你的提示。這是我的合作伙伴和我想到的方法,我們似乎無法將其轉換爲代碼。 –
@MichaelWendel:好的,我發佈了一個更明確的解決方案。你現在能看到如何去做剩下的事嗎? –